しぃちゃんの言うように、リソースの少ないサーバでは、CPUコア数にあわせて、スレッドを絞ってプロセス数でカバーが良いと思います。
Sidekiqのスレッドが効果を発揮するのは処理速度の異なるジョブを平行で実行する時で、例えば20のサーバにDeliveryWorkerが走る時に、pushキューのスレッドが20あると、5つのサーバが凄く遅くても、残りの15はすぐ終了して空きが確保されるので有利というのはあります。
フォローインポートの際は、50あっても塞がるので、どのみち詰まりますw
pullキューは、もともと優先順位を一番低く設定してあって、これを利用して、いくつかの優先順位の低いワーカーがpullを利用するようになっています。
たとえば、投稿を削除する時は、フォロワーへの削除依頼(Delete Activity)はpushキューで処理されますが、リプライやブーストされた相手先サーバへはあまり急ぐ必要がないのでpullキューを使って配送するという戦略をとっています。(DeliveryWorkerはpushですが、LowPriorityDeliveryWorkerはpullを使う)
QT: https://homoo.social/@204504bySE/104206973509156487
@rosylilly おぉ……知見だ……。
一般に、ボトルネックは解消すると別の場所に移動するので、動かしながらどこでバランスするか見極めておかないといけませんね。