ジョブ キューを自動的に管理するツール (この場合は Beanstalkd) に取り組んでいます。現在、キューからジョブを取得するには、利用可能なワーカーの数を手動で設定する必要がありますが、これではジョブの急増が許容されないか、ジョブ時間の短い間にリソースが浪費されます。
ジョブ キュー サーバーとワーカーで実行されるクライアント/サーバーをセットアップしました。クライアントはサーバーに接続し、使用可能なリソース (CPU/メモリ) と、実行できるジョブの種類を報告します。次に、サーバーはキューを監視し、接続されたクライアントに対して、そのキューを処理するために実行するワーカーの数を 1 秒に 1 回指示します。現在、100 種類ほどの異なるワーカー タイプがあり、それらはすべて非常に異なる量の CPU/メモリを使用し、ワーカー サーバー自体のパフォーマンス レベルも異なります。
ジョブ キューの長さと各ワーカーのリソース要件に基づいて、ワークロードのバランスを最も効果的に取る手法を探しています。また、一部のジョブは他のジョブよりも優先度が高くなります。