全部產品
Search
文件中心

Alibaba Cloud Service Mesh:通過訪問日誌定位請求異常延遲的原因

更新時間:Jun 30, 2024

在工作負載中注入Sidecar,可以實現流量劫持,並按照您的配置對流量進行修改和路由。Sidecar處理和轉寄帶來的額外時間開銷會增加請求的延遲時間。在節點效能充足的情況下,Sidecar通常不會對並發能力有顯著的影響。本文介紹如何通過訪問日誌定位請求異常延遲的原因。

步驟一:在請求路徑上確認耗時異常的組件

您可以查看訪問日誌中的duration欄位,確認請求在資料平面組件消耗的總時間,包括讀取並轉寄請求至上遊、等待上遊響應,以及讀取並轉寄上遊響應至下遊的時間。

如果該時間異常,繼續向上遊方向排查調用路徑上的下一個組件。如果調用路徑上,下一個組件的延遲符合預期,表示耗時異常發生在當前組件上;如果下一個組件異樣,繼續向上遊排查,直至確定耗時異常的最上遊組件。

步驟二:確認組件的耗時原因

組件耗時的原因包括網路傳輸耗時上遊處理耗時。您可以根據訪問日誌中的相關欄位,確認耗時的原因。

網路傳輸耗時

查看訪問日誌的request_durationrequest_tx_duration欄位。

  • 如果request_duration耗時間長度,表示當前資料面組件(Sidecar或網關)從下遊讀取請求,消耗了較長時間。

  • 如果request_tx_duration耗時間長度,表示請求發送至上遊,消耗了較長時間。

對於攜帶了Body的HTTP請求,Body是邊讀取邊發送給上遊(而非讀取後發送)。因此,request_duration的時間長會間接導致request_tx_duration的時間變長。

  • 如果僅有request_tx_duration耗時間長度,表示讀取請求速度較快,但發送給上遊的速度較慢。

  • 如果request_durationresponse_tx_duration同時耗時間長度,表示從上遊讀取Response或將Response轉寄給下遊的速度較慢。

上遊處理耗時

訪問日誌的response_duration欄位,表示從請求發生到收到上遊響應的首個位元組所消耗的時間。

response_duration減去request_tx_duration的欄位值,表示上遊處理所消耗的時間。如果時間較長,表示上遊處理速度較慢或者上遊串連網路延遲較高。