セットアップ
フロントエンド マシンは Web リクエストを受け取り、3 つの異なる種類のタスクをGearman
サーバーに配置します。
そのギアマン サーバーに登録された 3 台のワーカー マシンは、それぞれがこれらのタスクのいずれかを実行できます。
異なるタスクは異なるリソースを消費します。
各タスクは、CPU/RAM/IO 消費の点で異なります。
キュー内のタスクの量は、ワーカーの数よりもはるかに多くなります。つまり、各作業マシンは複数のワーカー インスタンスを Gearman に登録しました。
動的に負荷を分散する方法
問題は、1 つのワーカー マシンがすべての CPU 拡張タスクを取得でき、別のワーカー マシンが I/O 拡張タスクを取得できる一方で、理想的には、ワーカーがこの異なる種類のタスクをすべて並行して実行することで、はるかに優れたパフォーマンスを発揮できることです。
おそらくギアマンは適切なツールではありませんか?