排解串流工作中的落後者

如果是串流管道,落後者是指具有下列特徵的工作項目:

  • 這可避免浮水印長時間 (以分鐘為單位) 前進。
  • 相較於同一階段的其他工作項目,處理時間較長。

進度落後項目會造成系統無法產生浮水印,進而增加工作延遲。如果延遲時間符合您的用途,則不必採取任何行動。如要縮短工作延遲時間,請先解決任何落後者。

在 Google Cloud 控制台中查看串流落後者

啟動 Dataflow 工作後,您可以使用 Google Cloud 主控台查看偵測到的任何落後者。

您可以在階段進度檢視畫面階段工作流程檢視畫面中,查看串流落後情形。

依階段進度查看落後者

如要依階段進度查看落後者,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的 Dataflow「Jobs」(工作) 頁面。

    前往「Jobs」(工作) 頁面

  2. 按一下工作名稱。

  3. 在「Job details」(工作詳細資料) 頁面中,按一下「Execution details」(執行詳細資料) 分頁標籤。

  4. 在「Graph view」(圖表檢視畫面) 清單中,選取「Stage progress」(階段進度)。進度圖會顯示每個階段偵測到的所有落後者匯總計數。

    階段進度畫面螢幕截圖。

  5. 如要查看階段的詳細資料,請將指標懸停在階段的長條上。詳細資料窗格會顯示工作站記錄的連結。按一下這個連結,即可開啟 Cloud Logging,並將範圍限定為偵測到落後工作站時的工作站和時間範圍。

    顯示落後者詳細資料資訊卡的螢幕截圖。

依階段作業流程查看進度落後項目

如要依階段工作流程查看落後者:

  1. 前往 Google Cloud 控制台的 Dataflow「Jobs」(工作) 頁面。

    前往「工作」

  2. 按一下工作名稱。

  3. 在工作詳細資料頁面中,按一下「執行詳細資料」分頁標籤。

  4. 在「Graph view」(圖表檢視畫面) 清單中,選取「Stage workflow」(階段工作流程)。階段工作流程會以工作流程圖的形式,顯示工作的執行階段。

    階段工作流程檢視畫面的螢幕截圖。

排解串流延遲問題

如果系統偵測到落後者,表示管道中的某項作業執行時間異常長。

如要排解問題,請先檢查 Dataflow 洞察是否指出任何問題。

如果還是無法判斷原因,請檢查回報落後者的階段的 Worker 記錄檔。如要查看相關工作站記錄,請在階段進度中查看落後者詳細資料。然後按一下工作人員的連結。這個連結會開啟 Cloud Logging,並將範圍限定為偵測到落後工作者的時間範圍和工作者。找出可能導致階段變慢的問題,例如:

  • DoFn 程式碼有錯誤或卡住DoFns。在記錄中,找出偵測到落後者時的時間戳記附近是否有堆疊追蹤。
  • 呼叫外部服務,但需要很長時間才能完成。為減輕這個問題的影響,請批次呼叫外部服務,並在 RPC 上設定逾時。
  • 水槽的配額限制。如果管道輸出至 Google Cloud服務,您或許可以提高配額。詳情請參閱「使用配額」。此外,請參閱特定服務的說明文件,瞭解最佳化策略,以及 I/O 連接器的說明文件。
  • DoFns,對持續性狀態執行大型讀取或寫入作業。請考慮重構程式碼,對持續性狀態執行較小的讀取或寫入作業。

你也可以使用「側邊資訊」面板,找出階段中最慢的步驟。其中一個步驟可能導致延遲。按一下步驟名稱,即可查看該步驟的工作人員記錄。

找出原因後,請更新管道並使用新程式碼,然後監控結果。

後續步驟

  • 瞭解如何使用 Dataflow 監控介面
  • 瞭解監控介面中的「執行作業詳細資料」分頁。