#author("2023-07-10T02:42:18+00:00","default:mogamin","mogamin") #author("2023-07-10T02:54:53+00:00","default:mogamin","mogamin") * Mastodon おひとりさま向けチューニング [#oa7d6d1f] さくらのVPS 1G で [[Mastodon のおひとり鯖:https://don.kumarin.co]]を運用してみてるんだけど、まあサーバ起動から1週間も経つとAPI応答がもたつきはじめる。ので、デフォルトからそのままの Sidekiq の設定を見直してみた。 *** sidekiq スレッド数を減らす [#ldbd1be9] Mastodon の Sidekiq は、初期状態では25スレッドで動く。/etc/systemd/system/mastodon-sidekiq.service を編集することで、スレッド数を変更できる。スレッド数 5 にする場合: # /etc/systemd/system/mastodon-sidekiq.service # 関係ない行は載せてないよ [Service] Environment="DB_POOL=5" ExecStart=/home/mastodon/.rbenv/shims/bundle exec sidekiq -c 5 `DB_POOL` は PostgreSQL のコネクション数らしい。これも一緒に変えてみる。 `systemctl daemon-reload` のあと `service mastodon-sidekiq restart` して完了。 #ref(dashboard.png) : thanks | Mastodon鯖を速くしたいときに踏みがちな罠(SidekiqとWeb) - Qiita https://qiita.com/204504bySE/items/be580afa77155ecd95be *** サービスの定期再起動をおこなう [#veccb15b] ダッシュボード上の RSS こそあまり変わらないものの、`mastodon-sidekiq.service` を長時間稼働させていると確実にメモリ使用量 → スワップ使用量が増えていくことがわかったので、サービスを1時間おきに再起動させるようにした。 また、`mastodon-web.service` についても VPS のリソースに同様の影響があるのを観測した。とはいえ sidekiq ほど激しくはないし、これを再起動すると10秒程度ぞうさんが出るので、こっちは1日に1回、だいたいいつも寝てる朝方に再起動するようにした。 # /etc/cron.d/mastodon-restart 2 * * * * root service mastodon-sidekiq restart 6 6 * * * root service mastodon-web restart *** 記録 [#ra8eefb8] `mastodon-sidekiq.service` を17時間ほど連続稼働させていたときの kumarin.co のサーバメトリクスを下記に示す。上からメモリとスワップ使用量、ロードアベレージ、ディスクIO。 #ref(metrics.png) 朝6時ごろにインスタンスを起動し、23時ごろに `mastodon-sidekiq.service` の定期再起動を仕掛けたときのグラフだ。 インスタンス起動後、メモリ使用量グラフの橙線で示されたスワップ使用量が増え続け、それにともないディスクIOとロードアベレージも上昇している。ゴールデンタイムの影響を考慮しても負荷の原因になってると考え、サービスの定期再起動が必要と判断した。 *** 改変履歴 [#h9d17bf4] : 2023.3.7 | 初版。 : 2023.3.18 | %%sidekiq スレッド数さらに減らした。%% サービスの定期再起動の節を追加。あとタイトル変えた。 %%Mastodon の Sidekiq スレッド数の調整%% → Mastodon の Sidekiq のおひとりさま向けチューニング : 2023.4.1 | mastodon-web も再起動にいれるように。 : 2023.5.29 | wiki 移行にともないタイトル変更。 %%Mastodon の Sidekiq のおひとりさま向けチューニング%% → Mastodon#おひとりさま向けチューニング : 2023.7.10 | sidekiq スレッド数またもどしたので、変更のところは一例として載せるように : 2023.7.10 | sidekiq スレッド数またもどした。めんどいので、この記事の変更手順のところは一例として載せるように