Compute Engine 會為代管執行個體群組 (MIG) 提供機型建議,協助您提升工作負載效能和成本效益。根據這些建議,判斷是否應調整執行個體的機器類型,以新增或移除 vCPU 和記憶體資源。
如要進一步瞭解 VM 執行個體可用的機型,請參閱機型說明文件。
機型建議也稱為適當調整大小的建議。
事前準備
- 參閱 Google Cloud 控制台說明文件。
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上範例的預計用途分頁:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,不需要設定驗證。
gcloud
-
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
- 設定預設區域和可用區。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。
限制
如果代管執行個體群組位於單一可用區,且未自動調度資源或負載平衡,系統就會提供最佳化建議。
定價
機型建議免費提供。如果您套用調整執行個體機型大小的最佳化建議,系統會根據您選擇的機型收費。
用途
如果工作負載符合下列條件,即可善用機型建議:
- 流量會定期增減的工作負載,例如容易產生季節性流量的工作負載。
- 由於受到讀取/寫入總處理量等其他限制約束,致使 CPU 與 RAM 使用量過低的工作負載。
- 工作負載執行的軟體需要個別軟體授權,且無法新增更多執行個體;在這種情況下,您可能需要靠機器類型建議,在維持相同 VM 執行個體數量的情況下,擴充機器類型的規模。
- 工作負載無法配合不斷變動的執行個體數量進行動態調整,例如不適合自動調度資源的工作負載。
您可能基於下列任一原因,不想使用機型建議:
- 您的工作負載出現極短暫的 CPU 用量遽增情形。由於機型建議是根據 60 秒間隔的平均 CPU 使用率產生,因此可能無法及時產生建議,以擷取較短的尖峰。如果應用程式會出現用量短暫遽增的情形,則可能需要使用比建議規模更大的機器類型,或者您也可以啟用自動調度資源功能來因應用量遽增情形。
- 負荷尖峰出現的頻率低於每 8 天一次 (例如每月一次)。權限調整演算法會忽略不常出現的尖峰,因為演算法只會查看過去 8 天的記錄。
- MIG 中的每個執行個體處理的工作負載差異極大。在這種情況下,建議會針對負載最高的 VM 執行個體進行最佳化,這會導致群組中大多數的 VM 執行個體過大。
- 您的 MIG 未提供即時負載,且旨在提供可隨時服務的容錯移轉容量,因此 VM 使用率偏低。
- MIG 的 VM 過大,可能原因如下:
- 軟體授權規定機器大小下限。
- 您需要符合儲存空間或網路 IOPS 需求,但只有最低機型才能滿足這些需求。
機型建議的運作方式
Compute Engine 會監控執行中虛擬機器的 CPU 與記憶體使用率,並根據過去 8 天的資料提出建議。為代管執行個體群組中的所有執行個體建議最佳單一機型時,Compute Engine 會為個別執行個體產生標準機型建議,並在調整離群值後,選擇不會縮減任何單一 VM 執行個體大小的機型。所有非執行中的執行個體皆不會列入計算,例如已停止或正在重新啟動的 VM 執行個體都不會計入。
Compute Engine 可能會提出類似以下的建議:
- 如果執行個體群組的 CPU 使用率大部分時間都很低,Compute Engine 會建議使用虛擬 CPU 較少的機型。
- 如果執行個體群組的 CPU 使用率大部分時間都很高,Compute Engine 會建議使用虛擬 CPU 較多的機型。
- 如果執行個體群組使用的記憶體比例不高,Compute Engine 會建議記憶體較少的機型。
- 如果執行個體大部分時間會主動使用到大部分的記憶體,Compute Engine 會建議使用記憶體較大的機型。
Compute Engine 可能會建議使用標準或自訂機型。請注意,機器在可用記憶體和 vCPU 數量上有些限制。具體來說,增加一項資源可能需要同時增加另一項資源,才能符合有效機型的規格。此外,Compute Engine 只建議使用執行個體執行所在區域提供的機器類型。
詳情請參閱「自訂機型規格」。
如果代管執行個體群組的工作負載在個別執行個體上的差異太大,系統可能會根據建議,將部分執行個體的規模調整為高於標準值,以讓受到完整使用的執行個體擁有充足資源。舉例來說,即使執行個體 1、2、3、5 的規模可能會過大,而導致未能充分利用,Compute Engine 仍會提出以下建議,以便支援執行個體 4 的工作負載:
因此,針對代管執行個體群組提出的建議,最適合工作負載大致平均分布的執行個體。
至於費用差異估算,執行個體群組的費用是根據前一週的用量 (套用續用折扣前),來推算 30 天所需的費用。然後與建議機型的月費 (續用折扣前) 比較。如需準確的定價和詳細資料,請參閱定價說明文件。
查看機型建議
Compute Engine 會透過Google Cloud console提供建議。您可以使用 gcloud CLI 或 REST,透過 建議工具 查看機型建議。
控制台
- 前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
- 選取您的專案並點選 [Continue] (繼續)。
查看「Recommendation」(建議) 資料欄,檢視對各個代管執行個體群組的建議。也可以根據預估的節省量來排序資料欄。如果執行個體群組旁未顯示建議,表示 Compute Engine 沒有任何要提出的建議。

如果執行個體群組具有兩個執行個體範本,Compute Engine 會對各執行個體範本分別提供建議。按一下建議,即可查看該執行個體範本的建議。

gcloud
使用 gcloud recommender recommendations list 指令並指定 VM 代管執行個體群組最適規模建議工具。
gcloud recommender recommendations list \
--recommender=google.compute.instanceGroupManager.MachineTypeRecommender \
--project [PROJECT_ID] \
--location [ZONE] \
--format=yaml
例如:
gcloud recommender recommendations list \
--recommender=google.compute.instanceGroupManager.MachineTypeRecommender \
--project my-project \
--location us-central1-a \
--format=yaml
回應會包括每個建議的下列各欄位:
operationGroups:按順序執行即可套用建議的一組作業。description:建議的說明,方便使用者瞭解。
---
content:
...
operationGroups:
- operations:
- action: test
path: /properties/machineType
resource: //compute.googleapis.com/projects/my-project/global/instanceTemplates/my-old-template
resourceType: compute.googleapis.com/InstanceTemplate
value: n1-standard-4
- action: copy
path: /
resource: //compute.googleapis.com/projects/my-project/global/instanceTemplates/$new-it-name
resourceType: compute.googleapis.com/InstanceTemplate
sourcePath: /
sourceResource: //compute.googleapis.com/projects/my-project/global/instanceTemplates/my-old-template
- action: replace
path: /name
resource: //compute.googleapis.com/projects/my-project/global/instanceTemplates/$new-it-name
resourceType: compute.googleapis.com/InstanceTemplate
value: $new-it-name
- action: replace
path: /properties/machineType
resource: //compute.googleapis.com/projects/my-project/global/instanceTemplates/$new-it-name
resourceType: compute.googleapis.com/InstanceTemplate
value: custom-2-5632
- operations:
- action: replace
path: /versions/*/name
pathValueMatchers:
versions/*/instanceTemplate:
matchesPattern: .*global/instanceTemplates/my-old-template
resource: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instanceGroupManagers/example-group
resourceType: compute.googleapis.com/InstanceGroupManager
value: global/instanceTemplates/$new-it-name
...
description: Save cost by changing machine type from n1-standard-4 to custom-2-5120.
...
name: projects/823742397239/locations/us-central1-a/recommenders/google.compute.instanceGroupManager.MachineTypeRecommender/recommendations/c50a1c41-7e65-417d-a32e-45248a2cb318
...
詳情請參閱建議工具說明文件。
REST
使用 Recommender API 和 MIG 機型建議 ID。
PROJECT_ID=my-project
LOCATION=us-central1-c
RECOMMENDER_ID=google.compute.instanceGroupManager.MachineTypeRecommender
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://recommender.googleapis.com/v1/projects/$PROJECT_ID/locations/$LOCATION/recommenders/$RECOMMENDER_ID/recommendations
回應會包括每個建議的下列各欄位:
name建議名稱description:建議的說明,方便使用者閱讀。operationGroups按順序執行即可套用建議的一組作業。
詳情請參閱建議工具說明文件。
建立新的代管執行個體群組後,系統會在 24 小時後顯示新群組的建議。
之後,系統會在一整天中定期重新整理建議。
對執行個體群組套用建議
如要採用 Compute Engine 提供的建議,您可以直接從主控台調整代管執行個體的規模。或者,您也可以自行手動逐步執行規模調整作業。Recommender API 會傳回一系列的規模調整作業,詳情請參閱作業群組一節。
將建議套用至代管執行個體群組時,您將執行下列步驟:
- 複製代管執行個體群組目前使用的執行個體範本。
- 根據建議和您要進行的任何變更,修改複製的執行個體範本。
使用代管執行個體群組更新程式套用新範本。如果執行個體群組具有兩個執行個體範本:
- 一次僅能為一個執行個體範本套用建議。
- 代管執行個體群組一次最多可維護兩個執行個體範本,因此您無法在維護另外兩個執行個體範本的同時套用建議。不過,如果執行個體群組只有一個執行個體範本,您就可以套用建議。
如要直接從主控台調整代管執行個體的規模:
- 前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
按一下要更新的執行個體群組建議文字。

系統會顯示彈出式視窗,提供更多詳細資料,並讓您選擇「取消」、「關閉」建議或「繼續」。如要檢視和套用建議,請按一下 [Continue] (繼續)。
「查看最佳化建議」頁面會詳細說明最佳化建議。如果繼續套用這項建議,Compute Engine 會將執行個體群組中所有使用舊範本的執行個體,更新為使用新範本。
(進階) 如要自訂新範本的執行個體推出方式,請按一下「自訂部署」。 系統隨即會顯示「Deployment configuration」(部署設定) 畫面。
- 如要使用新的執行個體範本主動刪除及建立執行個體,請選擇「自動」。 如要僅在透過其他方式建立執行個體時套用更新 (例如調整大小,或將新執行個體新增至群組時),請選擇「選擇性」。
- 如果選取自動更新,請選擇是否要在替換執行個體時保留執行個體名稱。
- 如果選擇保留執行個體名稱,請在「暫時性額外執行個體」下方,選擇要建立多少個暫時性額外執行個體,超過代管執行個體群組的目標大小。允許的執行個體越多,更新速度就越快,但會增加執行個體數量。預設值為 1 個額外執行個體。
- 在「無法使用的執行個體數量上限」下方,選擇這次更新作業期間可同時離線的執行個體數量。這個數目也包括任何因其他原因而無法使用的執行個體。例如,如果執行個體群組正處於將規模調大的過程中,建立中的執行個體可能會無法使用,而這些執行個體就會計入這個數字中。預設值為一次將 1 個執行個體設為無法使用。
- 選用:展開「顯示進階選項」。 在「等待時間下限」下方,選擇要等待幾秒,再將新執行個體標示為已更新。系統會在成功執行健康狀態檢查後開始計算時間。使用這項功能可控制套用執行個體範本的速率。
如要套用變更,請按一下「儲存」。
準備好部署變更時,請按一下 [Deploy] (部署)。
關閉建議
建議使用完畢後,可以從主控台中將其關閉。在主控台中,關閉建議會從預估節省費用總計中移除該建議,同時也會讓建議的外觀變成暗灰色,使其變得布明顯。
透過主控台關閉建議並不會影響 Recommender API 傳回的建議清單。如要管理 Recommender API 傳回的建議狀態,請參閱使用 API 一文。
如何在主控台中關閉單一建議:
前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
按一下您要關閉之建議的文字。系統會顯示彈出式視窗,內含更多詳細資料和「關閉」按鈕。
點選「關閉」。
如何在主控台中還原建議:
在「執行個體群組」頁面中,按一下要還原的灰色建議文字。

系統會顯示彈出式視窗,內含更多詳細資料和「還原」按鈕。
按一下「還原」。
使用監控代理程式取得更精準的建議
Cloud Monitoring 提供監控代理程式,可從 VM 執行個體收集額外的磁碟、CPU、網路和處理程序指標。您可以在 VM 執行個體上安裝監控代理程式,存取系統資源和應用程式服務,以收集這項資料。
如果 Monitoring Agent 已安裝在 VM 執行個體上並正在執行,系統會自動使用該 Agent 收集的 CPU 和記憶體指標,計算機器類型建議。與預設的 Compute Engine 指標相較之下,Monitoring 代理程式提供的代理程式指標對於執行個體的資源使用率,可提供更加詳盡的深入分析資訊。這樣推薦引擎就能更準確地估算資源需求,並提供更精確的建議。
如要安裝代理程式,請參閱「安裝 Cloud Monitoring 代理程式」。
後續步驟
- 進一步瞭解如何針對執行個體變更機器類型。
- 瞭解停止執行個體會造成哪些影響。
- 瞭解如何套用建議至個別 VM 執行個體。
- 進一步瞭解建議工具及其 API。
- 瞭解如何使用自動調度資源,取代調整機型大小。
- 進一步瞭解 最佳化建議洞察