我試圖在我的數據流作業中啓用自動調節功能,如this article中所述。我這樣做,由通過下面的代碼的相關算法設置:Google雲數據流中的自動調節功能未按預期工作
DataflowPipelineOptions options = PipelineOptionsFactory.as(DataflowPipelineOptions.class);
options.setAutoscalingAlgorithm(AutoscalingAlgorithmType.THROUGHPUT_BASED)
我設置和部署我的工作後,它始終以最大的作品。可用的CPU數量,即如果我將最大工作數設置爲10,那麼它將使用全部10個CPU,儘管平均CPU使用率約爲50%。 THROUGHPUT_BASED算法是如何工作的以及我犯的錯誤是什麼?
謝謝。
雖然你想達到什麼目前尚不清楚。 100%的CPU利用率? –
我從Pub/Sub訂閱中收到一些事件,有時會增加事件數量,例如週末。所以,我希望我的數據流作業能夠自適應地趕上所有事件,而無需延遲。在這種情況下,當我手動設置5個工作人員的數量時,沒有延遲,CPU使用率爲〜90%,這就是爲什麼運行10個CPU應該不合邏輯的原因。 – Ali
似乎完全的目標是作爲_「目標是最大限度地減少積壓,同時最大限度地提高工作人員的利用率和吞吐量,並快速響應負載尖峯。」_。可能在90%的CPU使用率下,要處理的數據積壓對於數據流來說太大了。所以它選擇了更多的機器,這些機器使用得更少,所以積壓量更小。 –