您可以擴充 AlloyDB 執行個體,調整叢集的容量和效能,因應不斷變化的工作負載需求。資源調度功能有助於管理成本,並因應流量高峰。
如要垂直擴充 (修改 vCPU 和 RAM),請變更主要執行個體或讀取集區執行個體的機型。如要橫向擴充,請變更讀取集區執行個體中的節點數量。您可以手動管理垂直和水平資源調度。您也可以啟用讀取集區自動調度資源功能,自動管理水平擴充。
您可以透過下列方式調度 AlloyDB 執行個體。
| 資源調度類型 | 方法 | 自動化 | 主要執行個體 | 讀取集區執行個體 |
|---|---|---|---|---|
| 縱向 | 變更機型 | 手動 | 支援 | 支援 |
| 橫向 | 變更節點數量 | 手動和自動 | 不支援 | 支援 |
事前準備
- 您使用的 Google Cloud 專案必須啟用 AlloyDB 存取權。
- 您必須在使用的 Google Cloud 專案中具備下列其中一個 IAM 角色:
roles/alloydb.admin(AlloyDB 管理員預先定義的 IAM 角色)roles/owner(擁有者基本 IAM 角色)roles/editor(編輯者基本 IAM 角色)
如果您不具備上述任一角色,請向組織管理員要求存取權。
手動調度執行個體資源
本節說明手動擴充 AlloyDB 執行個體的方法。舉例來說,您可以變更執行個體的機器類型,垂直調度資源;也可以變更讀取集區執行個體的節點數量,水平調度資源。
調整執行個體的機型
您可以變更執行個體的機型,藉此修改 vCPU 和 RAM,垂直調度主要和讀取集區執行個體的資源。
控制台
前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。
在「Resource Name」(資源名稱) 欄中,按一下叢集。
在「總覽」頁面,前往「叢集內的執行個體」部分,然後點選「編輯主要節點」或「編輯讀取集區」。
選取下列其中一個機器系列:
- C4A (Google Axion 型機器系列)
- N2 (x86 型機器系列)。這是預設機器系列。
- C4 (x86 型機器系列)
- Z3 (Intel Xeon 型機器系列)
選取機型。
- C4A 支援 1、2、4、8、16、32、48、64 和 72 個 vCPU。
- N2 支援 2、4、8、16、32、64、96 和 128 個 vCPU。
- C4 支援 4、8、16、24、32、48、96、144、192 和 288 個 vCPU。
- Z3 支援 8、14、16、22、32、44 和 88 個 vCPU。
如要進一步瞭解如何使用 C4A Axion 機器系列 (包括 1 個 vCPU 機型),請參閱「使用 C4A Axion 機器系列的注意事項」。
按一下「更新執行個體」或「更新讀取集區」。
gcloud
如要使用 gcloud CLI,您可以安裝並初始化 Google Cloud CLI,也可以使用 Cloud Shell。
使用 gcloud alloydb instances update 指令變更主要執行個體的機型。
gcloud alloydb instances update INSTANCE_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID更改下列內容:
INSTANCE_ID:要更新的執行個體 ID。CPU_COUNT:執行個體所需的 N2 vCPU 數量。預設為 N2。有效值包括:2:2 個 vCPU,16 GB RAM4:4 個 vCPU,32 GB RAM8:8 個 vCPU,64 GB RAM16:16 個 vCPU,128 GB RAM32:32 個 vCPU,256 GB RAM64:64 個 vCPU,512 GB RAM96:96 個 vCPU,768 GB RAM128:128 個 vCPU,864 GB RAM
MACHINE_TYPE:選用。從支援的機器類型清單中選取,例如n2-highmem-4、c4-highmem-4-lssd或c4a-highmem-4-lssd。詳情請參閱「選擇 AlloyDB 機型」。同時使用
MACHINE_TYPE和CPU_COUNT時,CPU_COUNT和MACHINE_TYPE中的值必須相符,否則會發生錯誤。REGION_ID:執行個體所在的區域。CLUSTER_ID:執行個體所在的叢集 ID。PROJECT_ID:叢集所在專案的 ID。
如果指令傳回的錯誤訊息包含 invalid cluster state MAINTENANCE,表示叢集正在進行例行維護。這會暫時禁止重新設定執行個體。等叢集恢復 READY 狀態後,再次執行指令。如要查看叢集狀態,請參閱「查看叢集詳細資料」。
加速更新機器類型
如要加快更新機型的速度,請使用 FORCE_APPLY 選項和 gcloud beta alloydb instances update 指令。
gcloud beta alloydb instances update INSTANCE_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--update-mode=FORCE_APPLY執行個體會停機約一分鐘。
執行個體的機器類型會在 10 到 15 分鐘後變更。
Terraform
如要變更執行個體的機型,請更新 google_alloydb_instance 資源中的 machine_config 區塊。
resource "google_alloydb_instance" "default" {
cluster = google_alloydb_cluster.default.name
instance_id = "alloydb-instance"
instance_type = "PRIMARY" # or "READ_POOL"
machine_config {
cpu_count = 4
}
}
調整讀取集區執行個體的節點數量
AlloyDB 可讓您擴充讀取集區執行個體中的節點數量,而不會在執行個體層級造成任何停機時間。增加節點數量時,用戶端連線不會受到影響。
減少節點數量時,連線至關閉節點的用戶端,可以使用執行個體端點重新連線至其他節點。
控制台
前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。
在「Resource Name」(資源名稱) 欄中,按一下叢集。
在「總覽」頁面,前往「叢集中的執行個體」部分,然後點選「編輯讀取集區」。
在「Node count」(節點數量) 欄位中輸入節點數量。
點選「更新讀取集區」。
gcloud
如要使用 gcloud CLI,您可以安裝並初始化 Google Cloud CLI,也可以使用 Cloud Shell。
使用 gcloud alloydb instances update 指令,變更讀取集區執行個體中的節點數量。
gcloud alloydb instances update INSTANCE_ID \
--read-pool-node-count=NODE_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_IDINSTANCE_ID:讀取集區執行個體的 ID。NODE_COUNT:讀取集區執行個體中的節點數量。請指定1到20之間的數字 (含和)。請注意,叢集中所有讀取集區執行個體的節點數量不得超過 20 個。REGION_ID:執行個體所在的區域。CLUSTER_ID:執行個體所在叢集的 ID。PROJECT_ID:叢集所在專案的 ID。
如果指令傳回的錯誤訊息包含 invalid cluster state MAINTENANCE,表示叢集正在進行例行維護。這會暫時禁止重新設定執行個體。請在叢集恢復 READY 狀態後,再次執行指令。如要查看叢集狀態,請參閱「查看叢集詳細資料」。
Terraform
如要變更讀取集區執行個體的節點數量,請更新 google_alloydb_instance 資源 read_pool_config 區塊中的 node_count 欄位。
resource "google_alloydb_instance" "default" {
cluster = google_alloydb_cluster.default.name
instance_id = "alloydb-read-pool-instance"
instance_type = "READ_POOL"
read_pool_config {
node_count = 3
}
}
設定讀取集區自動調度資源
AlloyDB 讀取集區自動調度資源功能可根據即時資源用量,自動調整讀取節點數量。這有助於因應使用量變化,並降低費用。
您可以使用下列政策設定自動調度資源:
- 依據 CPU 使用率:根據目標 CPU 使用率調度節點數量。
- 依據排程:在指定時間範圍內,將節點數量縮減至最低數量。
您可以搭配使用這些政策。如果有多項政策,自動配置器會選取建議節點數量最多的政策。
限制
讀取集區自動配置器有下列限制:
- 長期連線的負載分配:為平均分配流量,並充分利用自動調度資源新增的容量,建議您建立新的用戶端連線。自動配置器新增節點時,不會關閉現有的長期連線,因此這些連線的流量不會轉送至新加入的節點。
- 新節點的快取暖機:自動配置器新增節點後,可能需要幾分鐘的時間才能完成快取暖機,並達到最佳查詢效能。
為新的讀取集區執行個體啟用讀取集區自動調度資源功能
使用 CPU 政策和/或排程政策建立讀取集區執行個體時,您可以啟用並設定自動調度資源。
建立採用 CPU 政策的讀取集區執行個體
如要建立讀取集區執行個體,並根據目標 CPU 使用率設定自動調度資源政策,請執行下列指令:
gcloud beta alloydb instances create INSTANCE_ID \
--instance-type=READ_POOL \
--read-pool-node-count=NODE_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--enable-autoscaler \
--autoscaler-max-node-count=MAX_NODE_COUNT \
--autoscaler-cool-down-period-seconds=COOLDOWN_PERIOD \
--autoscaler-target-cpu-usage=TARGET_CPU_USAGE \
{--cpu-count=CPU_COUNT | --machine-type=MACHINE_TYPE}更改下列內容:
INSTANCE_ID:讀取集區執行個體的 ID。NODE_COUNT:自動配置器可在讀取集區執行個體中建立的節點數量下限。請指定1到20之間的數字 (含 和 )。叢集中所有讀取集區執行個體的節點總數不得超過 20 個。REGION_ID:執行個體所在的區域。CLUSTER_ID:執行個體所在的叢集 ID。PROJECT_ID:叢集所在的專案 ID。MAX_NODE_COUNT:自動配置器可在讀取集區執行個體中建立的節點數量上限。單一叢集中,所有讀取集區執行個體的節點總數不得超過 20 個。COOLDOWN_PERIOD:AlloyDB 等待的時間 (以秒為單位),之後才會將讀取集區執行個體的資源用量納入自動調度資源演算法。預設值為300秒。TARGET_CPU_USAGE:讀取集區執行個體的目標 CPU 使用率,以 0.0 到 1.0 之間的小數值表示。例如,0.7 代表 70%。CPU_COUNT:執行個體所需的 N2 vCPU 數量。必須指定--cpu-count或--machine-type。MACHINE_TYPE:從支援的機型清單中選取,例如n2-highmem-4、c4-highmem-4-lssd或c4a-highmem-4-lssd。詳情請參閱「選擇 AlloyDB 機型」。
建立採用排程政策的讀取集區執行個體
如要建立讀取集區執行個體,並採用依排程自動調度資源政策,定義特定時間範圍內的節點數量下限,請執行下列指令:
gcloud beta alloydb instances create INSTANCE_ID \
--instance-type=READ_POOL \
--read-pool-node-count=NODE_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--enable-autoscaler \
--autoscaler-max-node-count=MAX_NODE_COUNT \
--autoscaler-cool-down-period-seconds=COOLDOWN_PERIOD \
--autoscaler-set-schedule=SCHEDULE_NAME \
--autoscaler-schedule-cron-exp=CRON_EXPRESSION \
--autoscaler-schedule-duration-seconds=DURATION_SECONDS \
--autoscaler-schedule-time-zone=TIME_ZONE \
--autoscaler-schedule-min-node-count=MIN_NODE_COUNT \
--autoscaler-schedule-description="DESCRIPTION" \
{--cpu-count=CPU_COUNT | --machine-type=MACHINE_TYPE}更改下列內容:
MAX_NODE_COUNT:自動配置器可在讀取集區執行個體中建立的節點數量上限。單一叢集中,所有讀取集區執行個體的節點總數不得超過 20 個。COOLDOWN_PERIOD:AlloyDB 等待的時間 (以秒為單位),之後才會將讀取集區執行個體的資源用量納入自動調度資源演算法。預設值為300秒。SCHEDULE_NAME:調度資源排程的專屬名稱。CRON_EXPRESSION:以 cron 格式指定縮放事件的開始時間。DURATION_SECONDS:排程開始後保持有效的時間長度 (以秒為單位)。這段時間過後,執行個體會縮減至其他政策或原始設定決定的節點數量。TIME_ZONE:排程的選用時區。例如:America/Los_Angeles。MIN_NODE_COUNT:排程運作時,自動配置器會將讀取集區執行個體縮減至這個節點數量下限。DESCRIPTION:排程的文字說明 (選用)。CPU_COUNT:執行個體所需的 N2 vCPU 數量。必須指定--cpu-count或--machine-type。MACHINE_TYPE:從支援的機型清單中選取,例如n2-highmem-4、c4-highmem-4-lssd或c4a-highmem-4-lssd。詳情請參閱「選擇 AlloyDB 機型」。
建立讀取集區執行個體,並設定 CPU 和排程政策
如要建立讀取集區執行個體,並同時採用以 CPU 為準和以排程為準的自動調度資源政策,請執行下列指令:
gcloud beta alloydb instances create INSTANCE_ID \
--instance-type=READ_POOL \
--read-pool-node-count=NODE_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--enable-autoscaler \
--autoscaler-max-node-count=MAX_NODE_COUNT \
--autoscaler-cool-down-period-seconds=COOLDOWN_PERIOD \
--autoscaler-target-cpu-usage=TARGET_CPU_USAGE \
--autoscaler-set-schedule=SCHEDULE_NAME \
--autoscaler-schedule-cron-exp=CRON_EXPRESSION \
--autoscaler-schedule-duration-seconds=DURATION_SECONDS \
--autoscaler-schedule-time-zone=TIME_ZONE \
--autoscaler-schedule-min-node-count=MIN_NODE_COUNT \
--autoscaler-schedule-description="DESCRIPTION" \
{--cpu-count=CPU_COUNT | --machine-type=MACHINE_TYPE}如要瞭解這個指令中使用的預留位置,請參閱「建立採用 CPU 政策的讀取集區執行個體」和「建立採用排程政策的讀取集區執行個體」。
為現有讀取集區執行個體啟用或更新自動調度資源功能
您可以啟用、停用或修改現有讀取集區執行個體的自動調度資源設定。
如要首次為現有執行個體啟用自動調度資源功能,或更新現有政策,請使用 gcloud beta alloydb instances update 指令。舉例來說,如要更新目標 CPU 使用率,請執行下列指令:
gcloud beta alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--enable-autoscaler \
--autoscaler-target-cpu-usage=NEW_TARGET_CPU_USAGE將 NEW_TARGET_CPU_USAGE 替換為要為讀取集區執行個體設定的新目標 CPU 使用率,以 0.0 到 1.0 之間的小數值表示。
如要在現有設定中新增第二個排程,請執行更新指令並指定新的排程名稱。如果排程名稱已存在,指令會更新現有排程。否則,系統會建立新的排程。
gcloud beta alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--enable-autoscaler \
--autoscaler-set-schedule=NEW_SCHEDULE_NAME \
--autoscaler-schedule-cron-exp=CRON_EXPRESSION \
--autoscaler-schedule-duration-seconds=DURATION_SECONDS \
--autoscaler-schedule-min-node-count=MIN_NODE_COUNT將 NEW_SCHEDULE_NAME 替換為新或更新後縮放排程的專屬名稱。如果提供的名稱與現有排程相符,指令會更新該排程的設定。如果名稱不存在,指令會建立具有這個名稱的新排程。
自動調度資源政策的評估方式
如果有多項自動調度資源政策,自動配置器會評估每項政策,並選擇建議節點數量最多的政策。
舉例來說,假設設定包含兩項政策:
- 以 CPU 為準的政策,目標使用率為 60%。
- 依據排程的政策,平日上午 8 點至下午 5 點之間至少需要三個節點。
如果是在平日中午,CPU 使用率為 80%,則以 CPU 為準的政策可能會建議擴充至四個節點,而以排程為準的政策則建議三個。自動配置器會將執行個體擴充至四個節點。
自動調度資源
除了自動向外擴充讀取集區執行個體,AlloyDB 也會在不需要那麼多讀取節點來支援工作流程時,自動向內縮減執行個體。自動縮減資源時,AlloyDB 會將節點數量縮減至您為 --read-pool-node-count 欄位設定的值。
為判斷何時應縮減讀取集區執行個體,AlloyDB 會等到自動調度資源排程停用,或 CPU 使用率低於使用率目標 10 分鐘。
如要進一步瞭解如何縮減資源,請參閱「瞭解自動配置器制定的決策」。
停用自動調度資源
如要停用自動調度資源功能,請使用 --no-enable-autoscaler 旗標。讀取集區會重設為啟用自動調度資源前的原始節點數量。
gcloud beta alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--no-enable-autoscaler查看自動調度資源的節點數量
您可以查看自動配置器在執行個體中調整的節點數量。
控制台
前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。
在「Resource Name」(資源名稱) 欄中,按一下叢集。
在導覽選單中,點選「系統深入分析」。
從「Instance」(執行個體) 下拉式選單中選取執行個體。
查看「運作中的節點數量」下方的節點數量。
gcloud
如要使用 gcloud CLI,您可以安裝並初始化 Google Cloud CLI,也可以使用 Cloud Shell。
使用 gcloud alloydb instances describe 指令,查看執行個體中的節點清單。
gcloud alloydb instances describe INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--view=FULL \
--format="yaml(nodes)"更改下列內容:
INSTANCE_ID:要更新的執行個體 ID。REGION_ID:執行個體所在的區域。CLUSTER_ID:執行個體所在叢集的 ID。PROJECT_ID:叢集所在專案的 ID。