本頁說明受管理的自動配置器的運作方式,並說明使用 Spanner 受管理的自動配置器時的費用和限制。並提供資訊,協助您決定如何設定受管理的自動配置器。
代管式自動配置器的運作方式
啟用代管自動配置器後,Spanner 會自動調整執行個體大小。當負載增加或減少時,代管的自動配置器功能會根據執行個體的工作負載或儲存空間需求變更做出反應。代管自動調度資源功能會擴大規模,為執行個體新增運算能力,或是縮小規模,從執行個體中移除運算能力。
設定受管理的自動配置器時,您可以使用處理單元 (適用於小型執行個體) 或節點 (適用於大型執行個體)。在本文件中,我們使用「運算資源」一詞代表節點或處理單元。
Spanner 管理的自動配置器會根據下列項目,判斷所需的運算容量:
- 高優先順序 CPU 使用率目標
- 儲存空間使用率目標
- 最低限額
- 上限
每個調整資源配置維度都會產生建議的執行個體大小,Spanner 會自動使用最高的大小。舉例來說,如果執行個體需要 10 個節點才能達到儲存空間使用率目標,但需要 12 個節點才能達到 CPU 使用率目標,Spanner 就會將執行個體調整為 12 個節點。
隨著運算容量的變化,Spanner 會持續最佳化儲存空間。它會在所有伺服器之間重新平衡資料,確保流量平均分配,且不會讓個別伺服器超載。詳情請參閱「限制」一節。
如果受管理的自動配置器將執行個體擴充至上限,但工作負載仍會導致 CPU 使用率高於目標,則工作負載要求可能會出現較高的延遲或失敗。如果執行個體擴充至最大運算容量目標,但工作負載需要的儲存空間超過最大儲存空間上限,寫入要求就可能失敗。如要瞭解是否已達到最高目標,您可以在 Google Cloud 控制台的「系統深入分析」頁面中查看受管理的自動配置器系統事件記錄。詳情請參閱儲存空間限制。
Spanner 縮減執行個體時,會以比縮減時更慢的速度移除運算能力,以減少對延遲的影響。
您可以選擇以非對稱方式自動調度唯讀副本的資源。詳情請參閱「非對稱唯讀自動調度資源模式」。
費用
您的 Spanner 總費用可能會降低或提高,具體取決於您在啟用代管自動調度器前設定 Spanner 執行個體的方式,以及為代管自動調度器設定的限制。
舉例來說,如果您過去曾手動設定 Spanner 執行個體,讓其隨時擁有足夠的運算能力來處理高峰工作負載,那麼採用受管理的自動調整器可能會降低成本,因為它會在執行個體閒置時減少運算能力。
如果您過去曾手動設定 Spanner 執行個體,以便在平均工作負載下提供足夠的運算資源,但在工作負載流量增加時整體效能降低,則使用代管型自動調整資源配置器的費用可能會更高,因為代管型自動調整資源配置器可能會在執行個體繁忙時增加運算資源。不過,這麼做可為使用者提供更穩定的效能。
您可以將節點或處理單元上限設為所需支出金額,藉此限制 Spanner 執行個體的最高費用。
限制
在執行個體上啟用或變更受管理的自動調度資源功能時,請注意下列限制:
- 啟用受管理的自動調度資源功能後,您無法移動執行個體。您必須先停用受管理的自動調整器,然後再移動執行個體。移動執行個體後,您可以重新啟用代管的自動配置器。
- 您必須將自動調度資源執行個體的最低限制設為 1, 000 個處理單元以上,或 1 個節點以上。
- 在現有執行個體上啟用自動調度資源功能時,現有執行個體的容量可能低於您在代管自動配置器上設定的下限值。不過,執行個體會在啟動時自動擴充至設定的最低值。舉例來說,如果執行個體只有一個節點,但您將最小值設為兩個節點,則在啟動執行個體時,系統會自動將節點數量擴充至 2 個。
- 當區域或地區無法使用時,由管理的自動調整器為高優先順序工作負載調整 CPU,以便遵循 Spanner 的高優先順序 CPU 建議。不會考量 CPU 總使用率。CPU 使用率超過 100% 時,可能會導致效能降低。如果工作負載對延遲或效能敏感,請考慮自訂開放原始碼自動配置器工具,以便根據 CPU 總數進行調整。
代管式自動配置器參數
建立或編輯執行個體時,如果選擇啟用受管理的自動調整器,請定義下表所示的值。
參數 | 說明 |
---|---|
高優先順序 CPU 使用率目標 | 執行個體高優先順序 CPU 容量的百分比。這個值必須介於 10% 到 90% 之間。當執行個體的 CPU 使用率超過您設定的目標時,Spanner 會立即為執行個體新增運算資源。如果 CPU 使用率明顯低於目標,Spanner 就會移除運算資源。如需相關指南,請參閱「決定 CPU 使用率目標」。 |
儲存空間使用率目標 | 在 Spanner 擴充前,可使用的節點儲存空間百分比。這個目標可確保您隨時都有足夠的運算能力,處理儲存資料量變化。這個值必須介於 10 到 99% 之間。如需相關指南,請參閱「決定儲存空間使用率目標」。 |
最低限度 | Spanner 將執行個體縮減至的最低運算能力。最小值不得低於您為上限設定的值的 10%。舉例來說,如果節點數量上限為 40 個,則節點數量下限至少必須為 4 個。10% 的規定是硬性限制。如需相關指引,請參閱「決定最低限額」。 |
上限 | Spanner 可將執行個體擴充至的最高運算能力。對於節點,這個值必須大於 1 個節點 (或 1, 000 個處理單元),且必須等於或大於節點或處理單元的最小數量。這個值不得超過您為最低運算能力數量所選擇的數字的 10 倍。這項 10 次的規定是硬性限制。如需相關指南,請參閱「判斷上限」。 |
設定受管理的自動配置器
本節說明如何判斷應為受管理的自動調整器參數選擇哪些數字。設定初始值後,請監控執行個體,並視需要調整數字。
決定高優先順序 CPU 使用率目標
執行個體的最佳目標取決於工作負載的延遲和吞吐量需求。如要查看區域、雙區域和多區域執行個體設定的 CPU 使用率上限建議,請參閱「高 CPU 使用率的警示」。
受管理的自動配置器會在調整 CPU 用量時考量高優先順序的工作負載。不會考量 CPU 總使用率。CPU 使用率超過 100% 時,可能會導致效能降低。如果工作負載對延遲或效能敏感,請考慮自訂開源自動配置器工具,以便根據 CPU 總數進行調整。
一般來說,如果您發現延遲時間過高,應降低 CPU 使用率目標。
決定儲存空間使用率目標
對於自動調度資源,儲存空間使用率目標會以每個節點的百分比表示。如果是 1 個節點 (1, 000 個處理單元) 以上的執行個體,則每個節點的儲存空間大小上限為 10 TiB。
決定上限
您選擇的運算能力上限值,等於執行個體處理最繁重的流量所需的運算能力,即使您不預期大部分時間都會達到這個數量也一樣。Spanner 不會擴充到超過所需的運算資源。您也可以將這個數字視為願意支付的最高運算能力。如要進一步瞭解可接受的值,請參閱「自動調整器參數」。
上限必須允許您為自動調度資源設定的 CPU 使用率目標和儲存空間使用率目標。
如果您要將執行個體從手動配置改為受管理的自動調整,請找出執行個體在過去一或兩個月內的最高運算能力。您管理的自動調整器上限應至少設為這個值。
如果您要為新執行個體啟用代管自動配置器,請查看其他執行個體的計量資料,並在設定上限時將這些資料做為參考。
如果您有新的工作負載,但不確定其成長情形,可以預估滿足內建儲存空間利用率目標所需的運算容量,然後稍後再調整數量。
您也需要瞭解節點剩餘配額,因為受管理的自動調度器無法將執行個體設定為擁有超出配額的運算資源。詳情請參閱「節點限制」。
執行個體啟用自動調度資源功能並開始運作後,請監控執行個體,並確認您為上限值選擇的值至少與 CPU 目標的建議上限和儲存空間目標的建議上限相同。
決定最低限額
您可以為受管理的自動配置器設定下限,確保 Spanner 執行個體可縮減至最小、最具成本效益的大小。Spanner 會自動防止節點數量低於維持 CPU 和儲存空間使用率目標所需的最低數量。
代管自動配置器允許的最低值為 1 個節點或 1,000 個處理單元。如果您為現有執行個體啟用自動調度資源功能,但該執行個體的容量低於為受管理的自動配置器設定的最低值,則執行個體會在啟動時自動調升至這個最低值。
啟動已啟用受管理的自動調度資源功能的執行個體後,您應執行初始測試,確保執行個體可在設定的最小大小下運作。您應定期再次測試,確保系統持續正常運作。
如要進一步瞭解可接受的值,請參閱本文件中的「受管理的自動配置器參數」。
在許多情況下,您都會希望將最低值設為大於 1。在下列情況下,請選擇較高的數字或提高下限:
- 您即將舉辦大型活動,預期流量會暫時增加,因此想確保有足夠的運算能力。
- 您的應用程式傳送尖峰流量。新增運算能力時,Spanner 會自動重新平衡,以使用新的節點或處理單元。由於這項程序可能需要幾分鐘的時間,建議您採取保守做法,選擇較高的最低值。這樣一來,執行個體就能順利因應流量尖峰。
- 您提高了運算能力上限。最小值必須一律為最大運算容量目標的十個百分比或以上。舉例來說,如果您將節點數量上限設為
30
,則必須將節點數量下限設為至少3
。
如果您提高執行個體的運算容量下限值,Spanner 會立即嘗試將執行個體縮放至新的下限。適用標準限制。當您用盡配額時,變更受管理的自動調整器設定的請求會失敗,且系統不會更新設定。
首次設定受管理的自動配置器後,請定期測試執行個體,確保其可在最小大小下運作。
Google Cloud CLI 參數標記和限制
使用 Google Cloud CLI 設定受管理的自動配置器時,您必須設定一些必要標記。您可以使用選用標記,指出要使用節點還是處理單元。如要進一步瞭解如何使用代管自動配置器建立新執行個體,或在現有執行個體上啟用代管自動調度資源功能,請參閱以下文章:
在執行個體上啟用代管自動配置器時,必須使用下列標記:
autoscaling-high-priority-cpu-percent
autoscaling-storage-percent
如果您選擇使用節點,啟用受管理的自動調整資源配置功能時,也必須同時使用下列兩個標記:
autoscaling-min-nodes
autoscaling-max-nodes
如果您選擇使用處理單元,啟用受管理的自動配置器時,也必須同時使用下列兩個標記:
autoscaling-min-processing-units
autoscaling-max-processing-units
使用 Google Cloud CLI 將代管自動配置器新增至現有執行個體時,請注意下列限制:
- 您無法將
--nodes
標記與--autoscaling-min-nodes
或--autoscaling-max-nodes
標記搭配使用,因為使用--nodes
會設定特定節點數量,而非縮放範圍。同樣地,您無法將--processing-units
旗標與autoscaling-min-processing-units
或autoscaling-max-processing-units
旗標搭配使用,因為使用--processing-units
會設定特定數量的處理單元,而非縮放範圍。 - 您無法混合使用節點和處理單元的標記。舉例來說,您無法將
--autoscaling-max-nodes
與autoscaling-min-processing-units
一起使用。
微調設定
請密切留意運算能力用量,並視需要調整設定,尤其是在首次啟用受管理的自動配置器後。建議您使用 Google Cloud 控制台中的「系統深入分析」頁面。
非對稱唯讀自動調度資源
啟用受控的自動調整器後,您也可以獨立啟用及自動調整只讀備用資源副本。不對稱的唯讀自動調度功能可讓您根據唯讀區域的用量,控管其運算容量限制和 CPU 使用率目標。這麼做可改善本機讀取流量模式,並提高成本效益。您可以為每個唯讀備用資源區域設定下列自動調度資源設定參數:
- 運算容量下限
- 運算容量上限
- 高優先順序 CPU 使用率目標
您可以建立新的執行個體或更新現有執行個體,啟用不對稱自動調度資源功能並設定這些參數。
在現有執行個體上啟用不對稱的自動調整大小功能時,系統會為每個複本套用下列規則:
- 如果副本的目前運算資源介於為區域設定的自動調度資源最小值和最大值之間,副本的運算資源就不會變更。
- 如果副本目前的運算容量低於為該地區設定的自動調度資源最小值,系統會調整運算容量,使其符合自動調度資源最小值。
- 如果副本的目前運算資源超出為該區域設定的自動調度資源上限,系統會調整運算資源,使其符合自動調度資源上限。
存取權控管
如要設定代管自動配置器,您必須是角色中的實體,且該角色具備所要設定執行個體的建立和更新權限。
監控
Spanner 提供多項指標,協助您瞭解受管理的自動配置器在調降及調升資源以滿足工作負載需求時的運作情形。這些指標還可協助您評估設定是否能滿足貴公司的工作負載和成本需求。舉例來說,如果您發現執行個體的節點數經常接近節點數上限,不妨考慮提高上限。如要進一步瞭解如何監控 Spanner 資源,請參閱「使用 Cloud Monitoring 監控執行個體」。
Google Cloud 控制台的「系統深入分析」頁面會以圖表顯示下列指標。您也可以使用 Cloud Monitoring 查看這些指標。
spanner.googleapis.com/instance/autoscaling/min_node_count
spanner.googleapis.com/instance/autoscaling/max_node_count
spanner.googleapis.com/instance/autoscaling/min_processing_units
spanner.googleapis.com/instance/autoscaling/max_processing_units
spanner.googleapis.com/instance/autoscaling/high_priority_cpu_target_utilization
spanner.googleapis.com/instance/autoscaling/storage_target_utilization
記錄
Spanner 每次調整執行個體時,都會建立系統事件稽核記錄。每個事件記錄都包含與自動調整大小事件相關的說明文字和中繼資料。
在「系統深入分析」頁面查看記錄
您可以在Google Cloud 主控台的「系統深入分析」頁面中,查看受管理的自動配置器系統事件記錄檔。
在 Google Cloud 控制台中開啟 Spanner:
選取已啟用自動調度資源的執行個體。
在導覽選單中,按一下「系統深入分析」。
在「系統深入分析」頁面中,前往「運算能力」指標。
按一下「View logs」,開啟記錄面板。
「Compute capacity logs」窗格會顯示過去一小時的記錄。
如果為執行個體啟用非對稱唯讀自動調度資源功能,則記錄摘要會提供每個副本的運算能力變更說明和位置。例如,
Increased from 1 to 2 nodes in us-central1 to maintain high priority CPU utilization at 80%
。如果您未使用不對稱的自動調整大小功能,記錄摘要中不會提供位置資訊。例如:Increased from 9 to 10 nodes to maintain high priority CPU utilization at 65%
。
使用記錄檔探索工具查看記錄檔
您也可以使用記錄檔探索工具查看記錄檔:
在 Google Cloud 控制台中開啟「Logs Explorer」(記錄檔探索工具):
選取適當的 Google Cloud 專案。
在「Query」欄位中輸入以下內容:
protoPayload.methodName="AutoscaleInstance"
您可以新增下列查詢,進一步篩選記錄:
resource.type="spanner_instance" resource.labels.instance_id=INSTANCE_ID resource.labels.project_id=PROJECT_ID logName="projects/span-cloud-testing/logs/cloudaudit.googleapis.com%2Fsystem_event" protoPayload.methodName="AutoscaleInstance"
點選「執行查詢」。
「Query results」窗格會顯示過去一小時的記錄。
如要進一步瞭解如何查看記錄,請參閱 Cloud Logging。您可以在 Google Cloud 的「記錄檔探索器」頁面中,或使用 Cloud Monitoring API 設定以記錄為依據的快訊。