如果是串流管道,落後者是指具有下列特徵的工作項目:
- 這可防止浮水印在相當長的時間內 (以分鐘為單位) 前進。
- 相較於同一階段的其他工作項目,處理時間較長。
進度落後項目會造成系統無法產生浮水印,進而增加工作延遲。如果延遲時間符合您的用途,則不必採取任何行動。如要縮短工作延遲時間,請先解決任何落後者。
在 Google Cloud 控制台中查看串流落後者
啟動 Dataflow 工作後,您可以使用 Google Cloud 主控台查看偵測到的任何落後者。
您可以在階段進度檢視畫面或階段工作流程檢視畫面中,查看串流落後情形。
依階段進度查看落後者
如要依階段進度查看落後者,請按照下列步驟操作:
前往 Google Cloud 控制台的 Dataflow「Jobs」(工作) 頁面。
按一下工作名稱。
在「Job details」(工作詳細資料) 頁面中,按一下「Execution details」(執行詳細資料) 分頁標籤。
在「Graph view」(圖表檢視畫面) 清單中,選取「Stage progress」(階段進度)。進度圖表會顯示每個階段偵測到的所有落後者匯總計數。
如要查看階段的詳細資料,請將指標懸停在階段的長條上。詳細資料窗格包含工作站記錄的連結。按一下這個連結,即可開啟 Cloud Logging,並將範圍限定為偵測到落後工作站時的工作站和時間範圍。
依階段作業流程查看進度落後項目
如要依階段工作流程查看落後者:
前往 Google Cloud 控制台的 Dataflow「Jobs」(工作) 頁面。
按一下工作名稱。
在工作詳細資料頁面中,按一下「執行詳細資料」分頁標籤。
在「Graph view」(圖表檢視畫面) 清單中,選取「Stage workflow」(階段工作流程)。階段工作流程會以工作流程圖的形式,顯示工作的執行階段。
排解串流延遲問題
如果偵測到落後者,表示管道中的某項作業執行時間異常長。
如要排解問題,請先檢查 Dataflow 洞察是否指出任何問題。
如果還是無法判斷原因,請檢查回報落後工作者的階段的記錄檔。如要查看相關工作站記錄,請在階段進度中查看落後者詳細資料。然後按一下工作人員的連結。這個連結會開啟 Cloud Logging,並將範圍限定為偵測到落後工作者的時間範圍和工作者。找出可能導致階段變慢的問題,例如:
DoFn
程式碼有錯誤或卡住DoFns
。在記錄中,找出偵測到落後者時的時間戳記附近是否有堆疊追蹤。- 呼叫外部服務,但需要很長時間才能完成。為減輕這個問題的影響,請批次呼叫外部服務,並在 RPC 上設定逾時。
- 水槽的配額限制。如果管道輸出至 Google Cloud服務,您或許可以提高配額。詳情請參閱 Cloud Quotas 說明文件。此外,請參閱特定服務的說明文件,瞭解最佳化策略,以及 I/O 連接器的說明文件。
DoFns
,對持續性狀態執行大型讀取或寫入作業。請考慮重構程式碼,對持續性狀態執行較小的讀取或寫入作業。
你也可以使用「側邊資訊」面板,找出階段中最慢的步驟。其中一個步驟可能導致延遲。按一下步驟名稱,即可查看該步驟的工作人員記錄。
找出原因後,請更新管道並使用新程式碼,然後監控結果。
後續步驟
- 瞭解如何使用 Dataflow 監控介面。
- 瞭解監控介面中的「執行作業詳細資料」分頁。