關於 Dataflow 瓶頸偵測工具

作業處理時間過長,導致控制台偵測到瓶頸。

使用 Dataflow 瓶頸偵測器診斷進度區塊,並在 Dataflow 串流工作中提升管道效能。偵測器會自動醒目顯示資料管道中限制輸送量並導致積壓的元件。

瓶頸偵測器可找出執行延遲的確切位置和可能原因,讓您不必透過試誤法,就能排解複雜的 Apache Beam 串流管道問題。

瓶頸偵測功能的運作方式

串流管道通常由一連串透過佇列連結的步驟組成。資料會依序從上游來源流經中繼轉換,再流向下游接收器。

在許多管道中,整體輸送量會受到單一元件或步驟的限制,進而造成瓶頸,或導致工作進度緩慢。如果下游元件無法像上游元件一樣快速處理資料,兩者之間的佇列就會開始填滿。舉例來說,如果上游串流隨機排序元件產生資料的速度,比下游使用者定義的慢速 DoFn 處理資料的速度快,佇列就會填滿。

隨著時間推移,這項延遲會影響管道中的所有步驟。待處理工作會在上游增加,最終限制管道從原始來源擷取及處理輸入內容的速率。這種行為稱為「待辦事項傳播」

發生積壓工作傳播時,管道的多個階段可能會顯示不正常或緩慢,即使只有單一步驟導致基礎限制也是如此。瓶頸偵測工具會持續監控所有元件的執行延遲,包括:

  • 串流隨機播放
  • 使用者定義函式 (DoFn 執行緒)
  • 永久狀態提交

如果元件的處理延遲時間超過五分鐘,Dataflow 瓶頸偵測器就會將其註冊為瓶頸。並醒目顯示工作執行圖中的步驟,提供詳細的診斷資訊。

瓶頸類型

控制台偵測到熱鍵或索引鍵平行處理量不足,導致瓶頸。

瓶頸處於活動狀態時,瓶頸偵測器會將其分類為下列其中一種狀態:

  • 處理作業停滯且無法繼續進行:管道的進度完全停滯在受影響的步驟。
  • 處理作業持續進行中,但進度落後:目前的步驟運作正常,但無法快速處理傳入資料,導致待處理工作越來越多。
  • 處理作業持續進行中,但有待處理的工作:這個步驟會以與傳入速率相同的速率處理資料。積壓工作量並未增加,但仍處於高位。
  • 處理作業持續進行中,且即將進行待處理的工作:這個步驟會成功清除待處理的工作。如果使用現有待處理事項啟動管道,這是正常狀態,不需要介入。

如要進一步瞭解如何查看瓶頸偵測器診斷結果及解決問題,請參閱「偵測及解決瓶頸」。

後續步驟