您可以調整 AlloyDB 執行個體的大小,以符合不斷變化的工作負載需求。擴充功能有助於控管費用,並方便處理流量暴增的情況。
您可以透過幾種方式調整 AlloyDB 執行個體的大小,摘要如下。
| 資源調度類型 | 方法 | 自動化 | 主要執行個體 | 讀取集區執行個體 |
|---|---|---|---|---|
| 縱向 | 變更機器類型 | 手動 | 支援 | 支援 |
| 橫向 | 變更節點數 | 手動和自動 | 不支援 | 支援 |
事前準備
- 您使用的 Google Cloud 專案必須啟用 AlloyDB 存取權。
- 您必須在使用的 Google Cloud 專案中擁有下列其中一個 IAM 角色:
roles/alloydb.admin(AlloyDB 管理員預先定義的 IAM 角色)roles/owner(擁有者基本 IAM 角色)roles/editor(編輯者基本 IAM 角色)
如果您不具備上述任一角色,請與機構管理員聯絡,並要求存取權。
手動調整資源配置
本節說明手動調度 AlloyDB 執行個體資源的方法。舉例來說,您可以變更執行個體的機器類型,垂直調度執行個體資源;也可以變更節點數量,水平調度讀取集區執行個體資源。
調度執行個體的機型
您可以變更執行個體的機器類型,藉此修改 vCPU 和 RAM,垂直調度主要和讀取集區執行個體的資源。
控制台
前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。
按一下「資源名稱」欄中的叢集。
在「總覽」頁面中,前往「叢集中的執行個體」部分,然後按一下「編輯主要」或「編輯讀取集區」。
選取下列其中一個機器系列:
- C4A:以 Google Axion 為基礎的機器系列,現已推出預先發布版。
- N2:預設的 x86 型機器系列。
選取機型。
- C4A 支援 1、4、8、16、32、48、64 和 72 種機器類型或形狀。
N2 支援 2、4、8、16、32、64、96 和 128 個機器類型或形狀。
如要進一步瞭解如何使用 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 機器時,這個參數為選用。如要部署以 C4A Axion 為基礎的機器系列 (預先發布版),或在 C4A 和 N2 機器之間遷移,請選擇這個參數並使用下列值。同時使用
MACHINE_TYPE和CPU_COUNT時,CPU_COUNT和MACHINE_TYPE中的值必須相符,否則會發生錯誤。如果是以 Axion 為基礎的 C4A 機型系列,請選擇具有下列值的機型:
c4a-highmem-1c4a-highmem-4-lssdc4a-highmem-8-lssdc4a-highmem-16-lssdc4a-highmem-32-lssdc4a-highmem-48-lssdc4a-highmem-64-lssdc4a-highmem-72-lssd
如要部署 4 個以上 vCPU 的 C4A,請使用
lssd後置字元,啟用超快速快取。如要進一步瞭解如何使用 C4A Axion 型機器系列 (包括 1 個 vCPU 的機器類型),請參閱「使用 C4A Axion 型機器系列時的注意事項」。
如為 N2 x86 架構的機器系列,請使用下列值:
N2-highmem-2N2-highmem-4N2-highmem-8N2-highmem-16N2-highmem-32N2-highmem-64N2-highmem-96N2-highmem-128
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 分鐘後變更。
調整讀取集區執行個體的節點數量
AlloyDB 可讓您調整讀取集區執行個體中的節點數量,且執行個體層級不會有任何停機時間。增加節點數量時,用戶端連線不會受到影響。
減少節點數量時,連線至關閉節點的任何用戶端,都可以使用執行個體端點重新連線至其他節點。
控制台
前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。
按一下「資源名稱」欄中的叢集。
在「總覽」頁面中,前往「叢集中的執行個體」部分,然後按一下「編輯讀取集區」。
在「節點計數」欄位中輸入節點計數。
按一下「更新讀取集區」。
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 狀態後,請再次執行指令。如要查看叢集狀態,請參閱「查看叢集詳細資料」。
自動調度讀取集區執行個體資源
AlloyDB 讀取集區自動調度資源功能可根據即時資源用量,自動調整讀取節點數量。這有助於您因應用量變化,並減少支出。
您可以使用下列政策設定自動調度資源:
- 根據 CPU 使用率:根據目標 CPU 使用率調整節點數量。
- 依據排程:在指定時間範圍內,將節點數量調度至下限。
您可以同時使用這些政策。如果有多項政策處於啟用狀態,自動配置器會選取建議節點數最高的政策。
限制
讀取集區自動配置器有下列限制:
- 長期連線的負載分配:為平均分配流量,並充分運用自動調度新增的容量,建議您建立新的用戶端連線。自動調整器新增節點時,不會終止現有的長期連線,因此來自這些連線的流量不會轉送至新加入的節點。
- 新節點的快取暖機:自動配置器新增節點時,可能需要幾分鐘的時間,節點才能完成快取暖機,達到查詢效能高峰。
- 大型查詢的行為:執行非常大型的讀取查詢時,自動調度調整作業可能會延後。
在新讀取集區執行個體上啟用自動調度資源功能
使用以 CPU 為準的政策、以時間表為準的政策或兩者建立讀取集區執行個體時,可以啟用及設定自動調度資源。
建立採用 CPU 政策的讀取集區執行個體
如要建立讀取集區執行個體,並根據目標 CPU 使用率設定自動調度資源政策,請執行下列指令:
gcloud 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-target-cpu-usage=TARGET_CPU_USAGE更改下列內容:
INSTANCE_ID:讀取集區執行個體的 ID。READ_POOL:指定執行個體類型。NODE_COUNT:讀取集區執行個體中的節點數量。請指定介於1至20之間的數字 (含頭尾)。請注意,叢集內所有讀取集區執行個體的節點總數不得超過 20 個。REGION_ID:執行個體所在的區域。CLUSTER_ID:執行個體所在叢集的 ID。PROJECT_ID:叢集所在專案的 ID。MAX_NODE_COUNT:自動調整工具可在讀取集區執行個體中建立的節點數量上限。單一叢集中所有讀取集區執行個體的節點總數不得超過 20 個。TARGET_CPU_USAGE:讀取集區執行個體的目標 CPU 使用率,以介於 0.0 和 1.0 之間的小數值表示。例如 0.7 代表 70%。
建立採用排程政策的讀取集區執行個體
如要建立讀取集區執行個體,並採用以時間表為準的自動調度資源政策,為特定時間範圍定義最少節點數,請執行下列指令:
gcloud 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-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"更改下列內容:
MAX_NODE_COUNT:自動調整工具可在讀取集區執行個體中建立的節點數量上限。單一叢集中所有讀取集區執行個體的節點總數不得超過 20 個。SCHEDULE_NAME:縮放時間表的專屬名稱。CRON_EXPRESSION:以 cron 格式表示的排程,用於指定資源調度事件的開始時間。DURATION_SECONDS:排程開始後維持有效狀態的時間長度 (以秒為單位)。這段時間過後,執行個體會縮減節點數量,降至其他政策或原始設定所決定的數量。TIME_ZONE:排程的選用時區。例如:America/Los_Angeles。MIN_NODE_COUNT:排程生效時,自動調度器將讀取集區執行個體調度至的節點數量下限。DESCRIPTION:排程的選填文字說明。
建立具有 CPU 和排程政策的讀取集區執行個體
如要建立同時具有 CPU 基礎和排程基礎自動調度資源政策的讀取集區執行個體,請執行下列指令:
gcloud 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-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"將 TARGET_CPU_USAGE 替換為讀取集區執行個體的目標 CPU 使用率,以介於 0.0 和 1.0 之間的小數值表示。
如要瞭解這個指令中使用的預留位置,請參閱建立採用 CPU 政策的讀取集區執行個體和建立採用排程政策的讀取集區執行個體政策。
啟用或更新現有讀取集區執行個體的自動調度資源功能
您可以啟用、停用或修改現有讀取集區執行個體的自動調度設定。
如要首次在現有執行個體上啟用自動調度資源功能,或更新現有政策,請使用 gcloud alloydb instances update 指令。舉例來說,如要更新目標 CPU 使用率,請執行:
gcloud alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--autoscaler-target-cpu-usage=NEW_TARGET_CPU_USAGE將 NEW_TARGET_CPU_USAGE 替換為要為讀取集區執行個體設定的新目標 CPU 使用率,以介於 0.0 和 1.0 之間的十進位值表示。
如要在現有設定中新增第二個排程,請執行更新指令並提供新的排程名稱。如果時間表名稱已存在,這項指令會更新現有時間表。否則系統會建立新排程。
gcloud alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--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 政策可能會建議擴充至四個節點,而排程政策則建議三個。自動調整器會將執行個體擴充至四個節點。
停用自動調度資源功能
如要停用自動縮放功能,請使用 no-enable-autoscaler 旗標。這會將讀取集區重設為啟用自動調度資源前的原始節點數量。
gcloud alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--no-enable-autoscaler