
使用 Dataflow 瓶頸偵測器診斷進度區塊,並在 Dataflow 串流工作中提升管道效能。偵測器會自動醒目顯示資料管道中限制輸送量並導致積壓的元件。
瓶頸偵測器可找出執行延遲的確切位置和可能原因,讓您不必透過試誤法,就能排解複雜的 Apache Beam 串流管道問題。
瓶頸偵測功能的運作方式
串流管道通常由一連串透過佇列連結的步驟組成。資料會依序從上游來源流經中繼轉換,再流向下游接收器。
在許多管道中,整體輸送量會受到單一元件或步驟的限制,進而造成瓶頸,或導致工作進度緩慢。如果下游元件無法像上游元件一樣快速處理資料,兩者之間的佇列就會開始填滿。舉例來說,如果上游串流隨機排序元件產生資料的速度,比下游使用者定義的慢速 DoFn 處理資料的速度快,佇列就會填滿。
隨著時間推移,這項延遲會影響管道中的所有步驟。待處理工作會在上游增加,最終限制管道從原始來源擷取及處理輸入內容的速率。這種行為稱為「待辦事項傳播」。
發生積壓工作傳播時,管道的多個階段可能會顯示不正常或緩慢,即使只有單一步驟導致基礎限制也是如此。瓶頸偵測工具會持續監控所有元件的執行延遲,包括:
- 串流隨機播放
- 使用者定義函式 (
DoFn執行緒) - 永久狀態提交
如果元件的處理延遲時間超過五分鐘,Dataflow 瓶頸偵測器就會將其註冊為瓶頸。並醒目顯示工作執行圖中的步驟,提供詳細的診斷資訊。
瓶頸類型

瓶頸處於活動狀態時,瓶頸偵測器會將其分類為下列其中一種狀態:
- 處理作業停滯且無法繼續進行:管道的進度完全停滯在受影響的步驟。
- 處理作業持續進行中,但進度落後:目前的步驟運作正常,但無法快速處理傳入資料,導致待處理工作越來越多。
- 處理作業持續進行中,但有待處理的工作:這個步驟會以與傳入速率相同的速率處理資料。積壓工作量並未增加,但仍處於高位。
- 處理作業持續進行中,且即將進行待處理的工作:這個步驟會成功清除待處理的工作。如果使用現有待處理事項啟動管道,這是正常狀態,不需要介入。
如要進一步瞭解如何查看瓶頸偵測器診斷結果及解決問題,請參閱「偵測及解決瓶頸」。
後續步驟
- 瞭解如何偵測及解決 Dataflow 管道瓶頸。
- 請參閱「疑難排解串流工作緩慢或停滯的問題」。
- 如要進行進階效能分析,請參閱「使用 Cloud Profiler 監控管道效能」。