排解批次工作執行緩慢或停滯的問題

本頁說明如何排解常見的 Dataflow 批次工作緩慢或停滯問題。

如果批次工作執行緩慢或停滯,請使用「執行詳細資料」分頁標籤,進一步瞭解工作,並找出造成瓶頸的階段或工作人員。

找出根本原因

  1. 檢查工作是否在啟動工作站時發生問題。詳情請參閱「無法同步處理 Pod」。

    如要確認工作已開始處理資料,請在 job-message 記錄檔中尋找下列記錄檔項目:

    All workers have finished the startup processes and began to receive work requests
    
  2. 如要比較不同工作的效能,請確保輸入資料量、工作站設定、自動調度資源行為和 Dataflow Shuffle 設定都相同。

  3. 檢查 job-message 記錄,確認是否有配額限制、缺貨問題或 IP 位址耗盡等問題。

  4. 在「執行詳細資料」分頁中,比較階段進度,找出耗時較長的階段。

  5. 找出工作中的任何落後者。詳情請參閱「排解批次作業中落後的問題」。

  6. 檢查處理量、CPU 和記憶體用量指標。

  7. 查看工作站記錄中的警告和錯誤。

    • 如果工作站記錄檔含有錯誤,請查看堆疊追蹤記錄。調查錯誤是否是由程式碼中的錯誤所致。
    • 尋找 Dataflow 錯誤。請參閱「排解 Dataflow 錯誤」。
    • 尋找記憶體不足錯誤,這類錯誤可能會導致管道停滯。如果看到記憶體不足錯誤,請按照「排解 Dataflow 記憶體不足錯誤」一文的步驟操作。
    • 如要找出緩慢或停滯的步驟,請檢查工作站記錄檔中的 Operation ongoing 訊息。查看堆疊追蹤,瞭解步驟耗費時間的位置。詳情請參閱「處理卡住或正在進行的作業」。
  8. 檢查快速鍵

  9. 如果未使用 Dataflow Shuffle,請檢查 Shuffler 記錄檔,瞭解 Shuffle 作業期間的警告和錯誤。如果通訊埠 12345 或 12346 顯示 RPC 逾時錯誤,表示工作可能缺少防火牆規則。請參閱「Dataflow 的防火牆規則」。

  10. 如果已啟用 Runner v2,請檢查安全帶記錄檔是否有錯誤。詳情請參閱「排解 Runner v2 問題」。

找出進度落後項目

進度落後項目是指相較於階段中的其他工作項目,速度較慢的工作項目。如要瞭解如何找出並修正落後的工作,請參閱排解批次工作中的落後工作

找出緩慢或停滯的階段

如要找出緩慢或停滯的階段,請使用「階段進度」檢視畫面。 長條越長,表示該階段耗時越久。使用這個檢視畫面找出管道中最慢的階段。

找出瓶頸階段後,請按照下列步驟操作:

  • 找出該階段的落後工作者
  • 如果沒有落後的工作站,請使用「階段資訊」面板找出最慢的步驟。運用這項資訊找出可進行使用者程式碼最佳化的候選項目。
  • 如要找出平行處理瓶頸,請使用 Dataflow 監控指標

找出延遲的工作人員

如要找出特定階段中進度落後的工作站,請使用「工作站進度」檢視畫面。這個檢視畫面會顯示所有工作站是否都在處理工作,直到階段結束,或是單一工作站是否卡在延遲的工作上。如果發現工作人員速度緩慢,請採取下列步驟:

偵錯工具

如果管道速度緩慢或停滯,可以使用下列工具診斷問題。

  • 如要將事件相互關聯並找出瓶頸,請使用 Cloud Monitoring for Dataflow
  • 如要監控管道效能,請使用 Cloud Profiler
  • 有些轉換比其他轉換更適合用於大流量管道。記錄訊息可以識別批次或串流管道中停滯的使用者轉換作業
  • 如要進一步瞭解停滯的工作,請使用 Dataflow 工作指標。下列清單列出實用指標:
    • 「待處理作業位元組」指標 (backlog_bytes) 會計算各階段未處理的輸入位元組數量。使用這個指標找出沒有輸送量的融合步驟。 同樣地,待處理元素指標 (backlog_elements) 會測量階段中未處理的輸入元素數量。
    • 「處理平行處理索引鍵」(processing_parallelism_keys) 指標會測量過去五分鐘內,管道特定階段的平行處理索引鍵數量。您可以透過下列方式使用這項指標進行調查:
      • 將問題範圍縮小至特定階段,並確認快速鍵警告,例如 A hot key ... was detected
      • 找出平行處理量不足導致的輸送量瓶頸。 這些瓶頸可能會導致管道緩慢或停滯。
    • 系統延遲指標 (system_lag) 和每個階段的系統延遲指標 (per_stage_system_lag) 會測量資料項目處理或等待處理的最長時間。您可以運用這些指標,找出資料來源中效率不彰的階段和瓶頸。

如需 Dataflow 監控網頁介面未列出的其他指標,請參閱「Google Cloud 指標」一文,查看 Dataflow 指標的完整清單。