使用指標診斷延遲時間

本頁面說明 Spanner 提供的延遲指標。如果應用程式發生高延遲情形,請使用這些指標來診斷及解決問題。

您可以在控制台 Google Cloud Cloud Monitoring 主控台中查看這些指標。

延遲指標總覽

Spanner 的延遲指標可評估 Spanner 服務處理要求所需的時間。這項指標會擷取實際的經過時間,而非 Spanner 使用的 CPU 時間。

這些延遲指標不包含 Spanner 以外發生的延遲,例如網路延遲或應用程式層中的延遲。如要評估其他類型的延遲時間,您可以使用 Cloud Monitoring 為應用程式加入自訂指標

您可以在Google Cloud 控制台Cloud Monitoring 主控台中查看延遲指標圖表。您可以查看結合讀取和寫入作業的延遲指標,也可以查看讀取和寫入作業的個別指標。

Spanner 會根據每項要求的延遲時間,將要求分組為百分位數。您可以查看第 50 和第 99 個百分位數的延遲時間指標:

  • 第 50 個百分位數的延遲時間:所有要求中速度最快的 50% 要求,其延遲時間上限 (以秒為單位)。舉例來說,如果第 50 百分位數的延遲時間為 0.5 秒,表示 Spanner 在 0.5 秒內處理 50% 的要求。

    這項指標有時也稱為平均延遲時間

  • 第 99 個百分位數的延遲時間:最快 99% 的要求的最大延遲時間 (以秒為單位)。舉例來說,如果第 99 個百分位數的延遲時間為 2 秒,表示 Spanner 在 2 秒內處理了 99% 的要求。

延遲時間和每秒作業數

如果執行個體在一段時間內處理的請求數量不多,則該時間點的第 50 和第 99 百分位延遲時間並非執行個體整體效能的有效指標。在這種情況下,極少數的異常值就可能大幅改變延遲指標。

舉例來說,假設執行個體在 1 小時內處理 100 個要求。在這種情況下,執行個體在該小時內的第 99 個百分位數延遲時間,就是處理最慢要求所需的時間。以單一要求為基礎的延遲時間評估沒有意義。

如何診斷延遲問題

以下各節將說明如何診斷可能導致應用程式端對端延遲時間過長的幾個常見問題。

如要快速查看執行個體的延遲指標,請使用Google Cloud 主控台。如要進一步檢視指標,並找出延遲時間和其他指標之間的相關性,請使用 Cloud Monitoring 控制台

總延遲時間高,Spanner 延遲時間低

如果應用程式的延遲時間高於預期,但 Spanner 的延遲時間指標明顯低於端對端延遲時間總和,則應用程式程式碼可能有問題。如果應用程式發生效能問題,導致部分程式碼路徑速度變慢,則每項要求的端對端延遲時間總和可能會增加。

如要檢查這項問題,請對應用程式進行基準測試,找出速度比預期慢的程式碼路徑。

您也可以將與 Spanner 通訊的程式碼註解處理,然後再次測量總延遲時間。如果總延遲時間沒有太大變化,Spanner 不太可能是造成高延遲的原因。

總延遲時間長、Spanner 延遲時間長

如果應用程式的延遲時間比預期長,且 Spanner 延遲時間指標也偏高,可能的原因有幾個:

  • 您的執行個體需要更多運算能力。如果執行個體的 CPU 資源不足,且 CPU 使用率超過建議的最大值,Spanner 可能無法快速且有效率地處理要求。

  • 部分查詢會導致 CPU 使用率偏高。如果查詢未善用可提高效率的 Spanner 功能,例如查詢參數次要索引,或是包含大量彙整或其他 CPU 密集運算,查詢可能會使用大量執行個體的 CPU 資源。

如要檢查這些問題,請使用 Cloud Monitoring 主控台找出高 CPU 使用率和高延遲之間的關聯性。此外,請檢查執行個體的查詢統計資料,找出同一時間範圍內任何 CPU 密集型查詢。

如果您發現 CPU 使用率和延遲時間同時偏高,請採取行動解決問題:

後續步驟