CPU 使用率指標

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

CPU 使用率和工作優先順序

Spanner 會根據工作來源優先順序來評估 CPU 使用率。

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

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

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

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

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

使用者工作 系統工作
高優先順序 包括資料要求,例如 readexecuteSql,其中未指定優先順序或 PRIORITY_HIGH 包括資料分割。
中優先順序 包括: 包括:
  • 資料庫壓縮
  • 結構定義變更驗證
  • 資料庫還原的最佳化階段
低優先順序 包含指定 PRIORITY_LOW 的資料要求。 包括:
  • 索引補充。
  • 填補產生欄

可用的指標

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

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

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

  • 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 容量,因此不應將其用於一般資料庫作業。

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

客戶不必為這項額外的 CPU 使用量支付費用。

降低 CPU 使用率

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

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

提高運算能力

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

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

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

使用內省工具進一步調查

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

後續步驟