本頁說明 Spanner 提供的 CPU 使用率指標。您可以在 Google Cloud 控制台和 Cloud Monitoring 控制台中查看這些指標。
CPU 使用率和工作優先順序
Spanner 會根據工作的來源和優先順序測量 CPU 使用率。
來源:工作可由使用者或系統啟動。
優先順序:優先順序可協助 Spanner 判斷應優先執行的工作。系統工作的優先順序是預先決定的,無法設定。除非另有指定,否則使用者工作會以高優先順序執行。許多資料要求 (例如 read 和 executeSql) 都允許您為要求指定較低的優先順序。舉例來說,當您執行沒有嚴格效能 SLO 的批次、維護或分析查詢時,這項功能就非常實用。
一般來說,系統會優先執行優先順序較高的工作,即使有競爭的低優先順序工作,Spanner 仍允許高優先順序工作使用近 100% 的可用 CPU 資源。雖然低優先順序系統工作可以在短時間內延遲,但最終仍須完成作業。因此,您必須為執行個體佈建足夠的運算容量,才能處理所有工作。
如果沒有高優先順序的工作,Spanner 會使用近 100% 的可用 CPU 資源,更快速地完成低優先順序工作。背景工作的遽增不會構成問題。低優先順序工作幾乎可立即暫停,讓高優先順序的工作 (包含使用者工作) 優先進行。
下表列出各項工作的範例:
| 使用者工作 | 系統工作 | |
|---|---|---|
| 高優先順序 | 包括資料要求,例如讀取或 executeSql,其中未指定任何優先順序或指定 PRIORITY_HIGH。 | 包括資料分割。 |
| 中優先順序 |
包括:
|
包括:
|
| 低優先順序 | 包括指定 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 使用率快訊
下表列出區域、雙區域和多區域執行個體的建議 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 使用率」。
後續步驟
- 使用Google Cloud 控制台或 Cloud Monitoring 控制台監控執行個體。
- 建立 Spanner CPU 使用率快訊。
- 瞭解如何變更 Spanner 執行個體的運算容量。
瞭解如何找出高延遲與其他指標之間的關聯性。
如要瞭解如何排解特定作業類型導致 CPU 使用率偏高的問題,請參閱「調查高 CPU 使用率」。