自動配置器工具簡介

本頁面介紹 Spanner 自動調度工具 (Autoscaler),這是一項開放原始碼工具,可做為 Spanner 的輔助工具。這項工具可根據使用中的容量,自動增加或減少一或多個 Spanner 執行個體的運算容量。

如要進一步瞭解 Spanner 中的擴充功能,請參閱「自動調度 Spanner 資源」。如要瞭解如何部署 Autoscaler 工具,請參閱下列文章:

本頁說明自動調度程式的功能、架構和高階設定。這些主題會引導您在不同拓撲中,將 Autoscaler 部署至其中一個支援的執行階段。

自動配置器

自動調度資源工具可協助您管理 Spanner 部署作業的用量和效能。為協助您兼顧成本控制和效能需求,自動配置器工具會監控執行個體,並自動新增或移除節點或處理單元,確保這些項目維持在下列參數範圍內:

可設定的利潤

自動調度 Spanner 部署作業可讓基礎架構自動調整及調度資源,以符合負載需求,幾乎不需要人為介入。自動調度資源功能也會適當調整佈建的基礎架構,協助您盡量減少產生的費用。

架構

自動配置器有兩個主要元件,分別是 PollerScaler。 雖然您可以將自動調度器部署至多個拓撲中的多個執行階段,並使用不同的設定,但這些核心元件的功能相同。

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

輪詢程式

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

Scaler

調整器會評估從輪詢器元件收到的資料點,判斷是否需要調整節點或處理單元數量,以及調整幅度。這項功能會比較指標值與門檻,並加上或減去允許的邊界,然後根據設定的縮放方法調整節點或處理單元的數量。詳情請參閱「縮放方法」。

在整個流程中,自動調度工具會將建議和動作的摘要寫入 Cloud Logging,以供追蹤和稽核。

自動配置器功能

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

管理多個執行個體

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

獨立設定參數

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

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

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

資源調度方法

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

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

逐步

如果工作負載有少量或多個尖峰,就適合使用逐步調度。並透過單一自動調度資源事件,提供容量來平緩這些尖峰。

下圖顯示具有多個負載平台或步驟的負載模式,每個步驟都有多個小尖峰。這個模式非常適合逐步方法。

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

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

線性

線性調整最適合用於負載模式變化較緩慢或有幾個尖峰負載的情況。這個方法會計算節點或處理單元的數量下限,確保使用率低於縮放門檻。每次擴縮事件中新增或移除的節點或處理單元數量,不限於固定步階量。

下圖的範例負載模式顯示負載突然大幅增加和減少。這些波動不會像上一個圖表一樣,以可辨識的步驟分組。使用線性調度可能較能處理這種模式。

負載模式有波動。

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

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

newSize = currentSize * currentUtilization / utilizationThreshold

直接

直接擴充可立即增加容量,這個方法適用於批次工作負載,這類工作負載會定期在已知開始時間排定較高的節點計數。這個方法會將執行個體擴充至排程中指定的節點或處理單元數量上限,且適用於線性或逐步方法。

下圖顯示預計負載大幅增加,自動調度器預先佈建容量,以使用直接方法。

預先佈建直接縮放的負載模式。

批次工作負載完成後,使用率會恢復正常。視設定而定,系統會套用線性或逐步調度資源程序,自動縮減執行個體。

設定

自動調度工具提供多種設定選項,可用於管理 Spanner 部署作業的資源調度。雖然 Cloud Run functions 和 GKE 參數類似,但提供方式不同。如要進一步瞭解如何設定 Autoscaler 工具,請參閱「設定 Cloud Run functions 部署作業」和「設定 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,根據預測使用量產生環境的預估費用。

後續步驟