自動配置器工具簡介

本頁面將介紹 Spanner 的自動配置器工具 (自動配置器),這是可用來搭配 Spanner 使用的開放原始碼工具。這項工具可讓您根據使用中的容量,自動增加或減少一或多個 Spanner 執行個體的運算容量。

如要進一步瞭解 Spanner 中的資源配置,請參閱「自動調度 Spanner」。如要瞭解如何部署自動配置器工具,請參閱以下文章:

本頁介紹自動調整器的功能、架構和高階設定。這些主題會引導您將 Autoscaler 部署至各個不同拓樸中的其中一個支援的執行階段。

自動配置器

自動配置器工具可用於管理 Spanner 部署的使用率和效能。為協助您平衡成本控管與效能需求,自動配置器工具會監控執行個體,並自動新增或移除節點或處理單元,確保這些項目維持在下列參數範圍內:

加上或減去可設定的邊界

自動調度資源的 Spanner 部署作業可讓基礎架構自動調整及調度資源,以符合負載需求,幾乎不需要人為介入。自動調整功能也會為已配置的基礎架構調整大小,協助您盡可能降低產生的費用。

架構

自動配置器包含兩個主要元件:輪詢器縮放器。雖然您可以將具有不同設定的自動調度器部署至多個具有不同設定的拓樸結構中,但這些核心元件的功能是一樣的。

本節將詳細說明這兩個元件及其用途。

輪詢程式

Poller 會收集並處理一或多個 Spanner 執行個體的時間序列指標。Polling 會預先處理每個 Spanner 執行個體的指標資料,只評估最相關的資料點並傳送至 Scaler。Polling 執行的預處理作業,也簡化了評估區域、雙區域和多區域 Spanner 執行個體的閾值程序。

縮放器

Scaler 會評估從 Poller 元件收到的資料點,並判斷是否需要調整節點或處理單元的數量,以及調整幅度。系統會比較指標值與閾值,並加上或減去允許的邊界,然後根據設定的調整方法調整節點或處理單元數量。詳情請參閱「資源調度方法」。

在整個流程中,自動配置器工具會將建議和動作摘要寫入 Cloud Logging,以便追蹤及稽核。

自動配置器功能

本節將說明自動配置器工具的主要功能。

管理多個執行個體

自動配置器工具可跨多個專案管理多個 Spanner 執行個體。多地區、雙區域和地區執行個體都有不同的使用率門檻,用於縮放時使用。舉例來說,多區域和雙區域部署作業會以 45% 的高優先順序 CPU 使用率進行調整,而區域部署作業則會以 65% 的高優先順序 CPU 使用率進行調整,兩者都會加上或減去允許的邊界。如要進一步瞭解不同的資源調度門檻,請參閱「CPU 使用率過高時的警示」。

獨立設定參數

每個自動調整大小的 Spanner 執行個體都可以有一或多個輪詢時間表。每個輪詢時間表都有一組專屬的設定參數。

這些參數會決定下列因素:

  • 節點或處理單元的數量上限與下限,可控制執行個體的大小,協助您控管產生的費用。
  • 用於調整特定工作負載的 Spanner 執行個體的調整方法
  • 冷卻期:讓 Spanner 管理資料分割作業。

資源調度方法

自動調度資源工具提供三種不同的資源調度方法,可用於調整 Spanner 執行個體的資源:逐步線性直接。每種方法都旨在支援不同類型的工作負載。建立獨立的輪詢排程時,您可以將一或多個方法套用至每個要自動調整大小的 Spanner 執行個體。

下列各節將進一步說明這些縮放方法。

逐漸

對於有小型或多個峰值的工作負載,逐步調整資源調度就很實用。這項功能會提供足夠的容量,讓您透過單一自動調度資源事件,順利處理所有事件。

下圖顯示有許多負載高峰或步驟的負載模式,每個步驟都有多個小峰值。此模式非常適合逐步方法。

包含多個步驟的負載模式。

當負載門檻超出時,這個方法會使用固定但可設定的數字,來配置及移除節點或處理單元。舉例來說,每個調整動作會新增或移除三個節點。變更設定後,您隨時可以新增或移除更大的容量增量。

線性

線性調整最適合用於負載模式變化較為緩慢,或有幾個大峰值的情況。這個方法會計算維持使用率低於調整上限所需的最低節點或處理單元數量。在每次調整事件中新增或移除的節點或處理單元數量,不限於固定的步驟數量。

下圖中的負載模式範例顯示負載突然大幅增加和減少的情況。這些波動並未以可辨識的步驟分組,如上一個圖表所示。使用線性縮放功能,或許能更妥善地處理這類模式。

載入模式有波動。

自動配置器工具會使用觀察到的使用率與使用率門檻的比率,計算是否要從目前的總數中增加或減少節點或處理單元。

計算新節點或處理單元數量的公式如下:

newSize = currentSize * currentUtilization / utilizationThreshold

直接

直接調整可立即增加容量。這個方法旨在支援批次工作負載,在這種情況下,系統會定期根據已知的開始時間排定工作,並要求使用較多的節點。這個方法會將執行個體調整為排程中指定的節點或處理單元數量上限,並且應與線性或逐步方法搭配使用。

下圖顯示負載的大量預定增量,自動配置器會使用直接方法預先配置容量。

負載模式,已預先配置直接調整功能。

批次工作負載完成後,且使用率恢復正常後,系統會根據您的設定,套用線性或階梯式調整資源配置,自動縮減執行個體。

設定

自動配置器工具提供不同的設定選項,可用於管理 Spanner 部署作業的資源調度。雖然 Cloud Run 函式和 GKE 參數相似,但提供方式不同。如要進一步瞭解如何設定自動調整工具,請參閱「設定 Cloud Run 函式部署作業」和「設定 GKE 部署作業」。

進階設定

自動配置器工具提供進階設定選項,可讓您更精細地控管 Spanner 執行個體的管理時機和方式。以下各節將介紹這些控制項的選項。

自訂門檻

自動配置器工具會根據下列負載指標的建議 Spanner 門檻,判斷要向執行個體新增或減少的節點或處理單元數量:

  • 高優先順序 CPU
  • 24 小時累計平均 CPU
  • 儲存空間使用率

建議您使用「建立 Spanner 指標的快訊」一文所述的預設門檻。不過,在某些情況下,您可能需要修改自動配置器工具使用的閾值。舉例來說,您可以使用較低的閾值,讓自動調整工具比使用較高閾值時更快做出反應。這項修改可避免在更高的門檻下觸發警示。

自訂指標

雖然自動配置器工具中的預設指標可解決大多數效能和調整規模的情況,但在某些情況下,您可能需要指定自己的指標,用於判斷何時要縮放和擴大。在這些情況下,您可以使用 metrics 屬性,在設定中定義自訂指標。

邊界

邊界會定義閾值的上限和下限。只有在指標值超過上限或低於下限時,自動配置器工具才會觸發自動調度資源事件。

這個參數的目的,是避免系統在工作負載出現小幅波動時,觸發自動調度資源事件,進而減少自動配置器動作的波動幅度。根據您希望指標值為何,門檻和邊界會共同定義下列範圍:

[threshold - margin, threshold + margin]

容許值越小,範圍就越窄,因此觸發自動調度資源事件的機率就越高。

您可以選擇為指標指定邊界參數,預設值為參數前後的五個百分點。

資料分割

Spanner 會將資料範圍 (稱為「分割」) 指派給節點或節點的子區段 (稱為處理單元)。節點或處理單元會獨立管理及提供分配的資料分割區中的資料。系統會根據多項因素建立資料分割,包括資料量和存取模式。詳情請參閱「Spanner - 結構定義與資料模型」。

資料會分割成多個部分,而 Spanner 會自動管理這些部分。因此,當自動配置器工具新增或移除節點或處理單元時,需要讓 Spanner 後端有足夠的時間重新指派及重新組織分割作業,因為執行個體會新增或移除新容量。

自動配置器工具會在向上和向下調整事件中使用等待期,以控制在執行個體中新增或移除節點或處理單元的速度。這個方法可讓執行個體有足夠的時間重新整理運算筆記或處理單元與資料分割之間的關係。根據預設,上調和下調的冷卻期會設為下列最小值:

  • 縮放值:5 分鐘
  • 縮減值:30 分鐘

如要進一步瞭解資源調度建議和冷卻期,請參閱「調整 Spanner 執行個體」。

定價

在運算、記憶體和儲存空間方面,自動配置器工具的資源消耗量不大。視自動配置器的設定而定,當自動配置器部署至 Cloud Run 函式時,其資源使用量通常會落在其依附服務 (Cloud Run 函式、Cloud Scheduler、Pub/Sub 和 Firestore) 的免費方案中。

使用 Pricing Calculator 可根據您的預測使用量產生環境的預估費用。

後續步驟