秘站小记

记录,思考

让sidekiq更快处理mastodon任务

默认分类 0 评

mastodon通过sidekiq处理通知、时间线、点赞和跟其他实例通讯的任务。当实例上的注册的人变多或者整个联邦宇宙交换的信息量变多时候sidekiq容易堵塞从而时间线会延迟。

解决办法是增加sidekiq进程和队列,默认是所有队列仅用一个sidekiq进程。
/etc/systemd/system/目录创建一个名为mastodon-sidekiq2.service的文件。
复制粘贴以下内容:

[Unit]
Description=mastodon-sid
After=network.target

[Service]
Type=simple
User=mastodon
WorkingDirectory=/home/mastodon/live
Environment="RAILS_ENV=production"
Environment="DB_POOL=20"
Environment="MALLOC_ARENA_MAX=2"
ExecStart=/home/mastodon/.rbenv/shims/bundle exec sidekiq -c 20 -q default -q pull -q ingress
TimeoutSec=15
Restart=always

[Install]
WantedBy=multi-user.target

保存后运行
systemctl daemon-reload 重载systemd配置。
然后启动
systemctl start mastodon-sidekiq2
之后在mastodon后台里看到多一个有default,pull,ingress线程的sidekiq进程。
当然也可以单独拆分队列。但是线程总数量不能超过PostgreSQL数据库的最大连接数。并且保证只有一个scheduler进程。

通过docker搭建send私密文件传送服务