@sakasame@ureteralstones.hostdon.ne.jp ジョブのグループとしてキューがあって、一つのsidekiqプロセスで、受け持つキューと走らせるスレッド数を指定できるのね。標準では全部のキューを受け持つ25スレッドのsidekiqプロセスを一個だけ立ち上げる。
これを、ローカルのユーザーにとって重要な処理をするdefaultと、外部への配送を受け持つpushや、外部から取得する処理と優先度の低い処理を行うpull
のキューを処理するsidekiqプロセスに分けたりする。defaultを手厚く、ほかはそこそこにすると良いのです。メール送信のmailersキューは、まぁどこかにくっつけとけばOK。
プロセスを分けると、それぞれがCPUを使ってくれるので、マルチコアプロセッサの恩恵が受けやすくなるというのがあります。
また、複数のマシンで実行することで、より沢山のパワーを投入できます。
redisとPostgreSQLがネックになるので無限に強化できるわけじゃないんだけど、そのあたりのバランスをとりながら構成を考えるのが楽しいのです。
@sakasame@ureteralstones.hostdon.ne.jp mstdn.jpでは、defaultキューがつまっていることが多く、pushキューに余裕があることが多くって、サーバ内で各種タイムラインが遅延しているのに、Fedibirdから見るとリアルタイムで届いているっていうようなことが起きています。
best-friends.chatはdefault重視(ローカルの体験がもっとも重要)で、pushとpullがおかしくてもしばらく気が付かないことがあったりします(最近はたぶん安定してる)。