this articleに記載されているように、データフロージョブで自動スケーリングを有効にしようとしています。Google Cloud Dataflowで自動スケーリングが正常に機能しない
DataflowPipelineOptions options = PipelineOptionsFactory.as(DataflowPipelineOptions.class);
options.setAutoscalingAlgorithm(AutoscalingAlgorithmType.THROUGHPUT_BASED)
私はこれを設定し、私の仕事を展開した後、それは常に最大で動作します。私は、次のコードを経由して、関連するアルゴリズムを設定することにより、ということでした。使用可能なCPUの数です。つまり、最大作業者数を10に設定した場合、平均CPU使用率は約50%ですが、10台すべてのCPUが使用されます。このTHROUGHPUT_BASEDアルゴリズムはどのように機能し、どこで間違っているのですか?
ありがとうございました。
あなたが達成しようとしていることは明確ではありません。 CPU使用率は100%ですか? –
Pub/Subサブスクリプションからいくつかのイベントが発生しています。週末。だから、私は自分のデータフローの仕事が待ち時間なしですべてのイベントに追いつくように自分自身を適応させたい。この場合、私が5人の人数を手動で設定すると、待ち時間がなくなり、CPU使用率が〜90%になります。なぜなら、実行中のCPUが論理的ではないはずです。 – Ali
完全な目的は_ "与えられた目的は、作業者の利用率とスループットを最大化しながらバックログを最小限に抑え、負荷の急上昇に迅速に反応することです。 90%のCPU使用率で処理するデータのバックログがデータフローにとって大きすぎる可能性があります。したがって、より軽く使用されるマシンの数が多くなり、バックログが小さくなります。 –