2017-05-01 4 views
0

私のサイドキックワーカーの中には、単一のdynoで複数のプロセスを同時に実行しているように見えることがあります(ログはこれを示唆しています)。Sidekiqが1つのヒーローdynoで複数のジョブを実行していますか?

スワンミング(エンタープライズ機能)を使用せずに、1つのdyno内で別々のジョブを同時に実行することができるプロセス数はいくつですか?

スワームを使わずにすべての設定をデフォルトにしているので、各sidekiqワーカーは25スレッドを使用しています。しかし、これらすべてのスレッドが正確に何に使われているのかは分かりません。誰もが、これがどのように、単一のHeroku dynoの中で仕事をしている並行作業者に変換されるのか理解できますか?

答えて

1

ジョブを同時に実行している25個のスレッドを持つ単一のSidekiqプロセスが表示されています。各スレッドはジョブを実行するので、最大25個のジョブを一度に実行できます。

スウォームなしでは、dynoごとに1つのプロセスしか実行できません。

swynを使用してdynoで複数のプロセスを実行できますが、アプリのメモリ要件とdynoのコア数によって数が異なります。

これにより、100のワーカースレッドが得られます。4 * 25。

SIDEKIQ_COUNT=4 bundle exec sidekiqswarm -e production -c 25 
+0

スウォームを追加することによる影響を明確にする。同時に実行できるジョブの総数は次のようになります。スウォームサイズ(#プロセス)* threads/process =同時に処理できるジョブの総数?私の場合、これは8つのコア(それぞれ1つのプロセス)*プロセス当たり25スレッド= dynoあたり同時に処理される200のジョブと同じくらい高いかもしれませんか? – BryanP

+1

正しい。 8つのプロセスをサポートするには、dynoに十分なメモリがあることを確認してください。デフォルトの並行性25を使用する場合は、それぞれ〜1GBが必要です。 –

関連する問題