CPU 使用率指標

本頁說明 Spanner 提供的 CPU 使用率指標。您可以在 Google Cloud 控制台Cloud Monitoring 控制台中查看這些指標。

CPU 使用率和工作優先順序

Spanner 會根據工作的來源優先順序測量 CPU 使用率。

  • 來源:工作可由使用者系統啟動。

  • 優先順序優先順序可協助 Spanner 判斷應優先執行的工作。系統工作的優先順序是預先決定的,無法設定。除非另有指定,否則使用者工作會以高優先順序執行。許多資料要求 (例如 readexecuteSql) 都允許您為要求指定較低的優先順序。舉例來說,當您執行沒有嚴格效能 SLO 的批次、維護或分析查詢時,這項功能就非常實用。

    一般來說,系統會優先執行優先順序較高的工作,即使有競爭的低優先順序工作,Spanner 仍允許高優先順序工作使用近 100% 的可用 CPU 資源。雖然低優先順序系統工作可以在短時間內延遲,但最終仍須完成作業。因此,您必須為執行個體佈建足夠的運算容量,才能處理所有工作。

    如果沒有高優先順序的工作,Spanner 會使用近 100% 的可用 CPU 資源,更快速地完成低優先順序工作。背景工作的遽增不會構成問題。低優先順序工作幾乎可立即暫停,讓高優先順序的工作 (包含使用者工作) 優先進行。

下表列出各項工作的範例:

使用者工作 系統工作
高優先順序 包括資料要求,例如讀取executeSql,其中未指定任何優先順序或指定 PRIORITY_HIGH 包括資料分割。
中優先順序 包括:
  • 指定「PRIORITY_MEDIUM」PRIORITY_MEDIUM的資料要求
  • 從 Dataflow 工作發出的讀取和寫入作業,包括匯入匯出
包括:
  • 資料庫壓縮
  • 驗證結構定義異動
  • 資料庫還原作業的最佳化階段
低優先順序 包括指定 PRIORITY_LOW 的資料要求。 包括:
  • 補充索引。
  • 回填產生的資料欄

可用的指標

Spanner 提供下列 CPU 使用率指標:

  • 平滑化 CPU 使用率:每個資料庫的 CPU 總使用率累計平均值,以執行個體 CPU 資源的百分比表示。每個資料點都是前 24 小時的平均值。您可以使用這項指標建立快訊,並分析長時間 (例如 24 小時) 的 CPU 使用率。您可以在 Google Cloud 控制台Cloud Monitoring 控制台中,以「Rolling average 24 hour」(24 小時移動平均) 查看這項指標的圖表。

  • CPU 使用率 (按優先順序顯示):CPU 使用率 (以執行個體 CPU 資源百分比表示),以優先順序、使用者啟動的工作和系統啟動的工作分組。您可以使用這項指標建立快訊,並從較高的層級分析 CPU 使用率。您可以在 Google Cloud 控制台Cloud Monitoring 控制台中查看這項指標的圖表。

  • CPU 使用率 (以作業類型分組):CPU 使用率 (以執行個體 CPU 資源百分比表示),以使用者啟動的作業 (例如讀取、寫入和提交) 分組。如要詳細瞭解 CPU 使用情況並進一步排解問題,請使用這項指標,詳情請參閱「調查 CPU 使用率偏高問題」。您可以在 Cloud Monitoring 控制台中,為這項指標建立圖表。

    您也可以使用 Cloud Monitoring 控制台建立 CPU 使用率的快訊,詳情請參閱後續說明。

下表列出區域、雙區域和多區域執行個體的建議 CPU 使用率上限。這些數字可確保執行個體有足夠的運算容量,在整個區域 (適用於區域執行個體) 或整個地區 (適用於雙區域和多區域執行個體) 發生中斷時,仍能繼續處理流量。

指標 地區執行個體最大值 雙區域和多區域執行個體中每個區域的最大值
高優先順序總計 65% 45%
24 小時順暢匯總 90% 90%

為協助您維持在建議最大值以下,請在 Cloud Monitoring 中建立快訊,追蹤高優先順序 CPU 使用率和 24 小時的平均 CPU 使用率。

CPU 使用率可能會影響要求延遲。如果個別後端伺服器過載,要求延遲時間就會變長。應用程式應執行基準測試和主動監控,確認 Spanner 符合效能需求。

因此,對於效能敏感型應用程式,您可能需要使用下一節所述的技術,進一步降低 CPU 使用率。

CPU 使用率超過 100%

在某些情況下,Spanner 執行個體的 CPU 使用率可能會超過 100%。這表示執行個體使用的 CPU 資源量超過為執行個體設定的量。

CPU 資源用量超過 100% 時,可提供更優質且可預測的效能,例如因要求流量突然增加而導致 CPU 使用率飆升時。

超過 100% 的 CPU 容量「不」保證可用,也不應做為正常資料庫作業的依據。

如果 Spanner 執行個體的 CPU 使用率長時間接近或超過 100%,可能會導致正常作業效能和延遲時間下降。額外的 CPU 資源並非安全機制,無法確保效能穩定。

客戶不需為這項額外 CPU 使用量付費。

降低 CPU 使用率

本節說明如何降低執行個體的 CPU 使用率。

一般來說,我們建議您先增加執行個體的運算容量。增加運算資源後,即可調查並解決 CPU 使用率偏高的根本原因。

提高運算能力

如果 CPU 使用率超出建議的最大值,我們強烈建議您增加執行個體的運算容量,以便繼續有效運作。如要自動執行這項程序,可以使用 UpdateInstance 方法建立應用程式,監控 CPU 使用率,然後視需要增加或減少運算容量。

如要判斷所需的運算資源,請考量高優先順序 CPU 使用率的最大值,以及 24 小時順暢 CPU 使用率的平均值。請配置足夠的運算容量,讓 CPU 使用率維持在建議最大值之下。如先前所述,您可能需要為對效能要求較高的應用程式分配額外運算資源 (例如,因應工作負載尖峰)。

如果運算容量不足,Spanner 會依優先等級延後工作。低優先順序系統工作,例如資料庫壓縮和結構定義變更驗證,可配合使用者工作延後。然而,這些工作對於執行個體的健康狀態而言非常重要,因此 Spanner 無法無限期將這些工作延後。如果 Spanner 無法在某個時間範圍內完成其低優先順序的系統工作 (依數小時到一天的順序),由於運算資源不足,Spanner 可能會提高系統工作的優先順序。這項變更會影響使用者工作的效能

使用內省工具進一步調查

如果「CPU 使用率 (按作業類型顯示)」指標顯示特定作業類型導致 CPU 使用率偏高,請使用 Spanner 內省工具進一步排解問題。詳情請參閱「調查高 CPU 使用率」。

後續步驟