對 MIG 套用機器類型建議

Compute Engine 會提供代管執行個體群組 (MIG) 的機型建議,協助您提升工作負載效能和成本效益。請使用這些建議來判斷是否要調整執行個體的機型規模,以新增或移除 vCPU 和記憶體資源。

如要進一步瞭解 VM 執行個體可用的機型,請參閱機型說明文件。

機型建議亦稱為「最適規模建議」

事前準備

  • 參閱 Cloud de Confiance 控制台說明文件。
  • 如果尚未設定驗證,請先完成設定。 驗證可確認您的身分,以便存取 Cloud de Confiance by S3NS 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:

    選取這個頁面上的分頁,瞭解如何使用範例:

    控制台

    使用 Cloud de Confiance 控制台存取 Cloud de Confiance by S3NS 服務和 API 時,無須設定驗證。

    gcloud

    1. 安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。登入後,執行下列指令來初始化 Google Cloud CLI:

      gcloud init
  • 設定預設地區和區域
  • REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI

    詳情請參閱 Cloud de Confiance 驗證說明文件中的「使用 REST 進行驗證」。

限制

建議功能適用於位於單一區域且未經自動調度資源或未受負載平衡的代管執行個體群組。

定價

機型建議功能可免費使用。如果您套用建議來調整執行個體的機型大小,系統會按照您選擇的機型收費。

用途

如果您的工作負載符合下列條件,則可善用機型建議:

  • 流量會定期增減的工作負載,例如容易產生季節性流量的工作負載。
  • 由於受到讀取/寫入總處理量等其他限制約束,致使 CPU 與 RAM 使用量過低的工作負載。
  • 工作負載執行的軟體需要個別軟體授權,且無法新增更多執行個體;在這種情況下,您可能需要靠機型建議,在維持相同 VM 執行個體數量的情況下,擴充機型的規模。
  • 工作負載無法配合不斷變動的執行個體數量進行動態調整,例如不適合自動調度資源的工作負載。

您可能基於下列任一原因,不想使用機型建議:

  • 您的工作負載出現極短暫的 CPU 用量遽增情形。由於機器類型建議是以 60 秒間隔內的平均 CPU 使用率為參考依據,系統產生建議的速度可能太慢,無法捕捉短暫的遽增情形。如果應用程式會出現用量短暫遽增的情形,則可能需要使用比建議規模更大的機器類型,或者您也可以啟用自動調度資源功能來因應用量遽增情形。
  • 負荷尖峰出現的頻率低於每 8 天一次 (例如每月一次)。大小合適演算法只會查看過去 8 天的記錄,因此會忽略不常出現的尖峰。
  • 代管執行個體群組中的每個執行個體都在處理差異甚大的工作負載。在這種情況下,建議會針對負載最高的 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 可透過Cloud de Confiance console提供建議,您可以使用 gcloud CLI 或 REST,透過 建議工具 查看機型建議。

控制台

  1. 前往 Cloud de Confiance 控制台的「Instance groups」(執行個體群組) 頁面。

    前往「Instance groups」(執行個體群組) 頁面

  2. 選取您的專案並點選 [Continue] (繼續)
  3. 查看「Recommendation」(建議) 資料欄,檢視對各個代管執行個體群組的建議。也可以根據預估的節省量來排序資料欄。如果執行個體群組旁未顯示建議,表示 Compute Engine 沒有任何要提出的建議。

    建議欄。

  4. 如果執行個體群組具有兩個執行個體範本,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

回應會包括每個建議的下列各欄位:


---
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 會傳回一系列的規模調整作業,詳情請參閱作業群組一節。

將建議套用至代管執行個體群組時,您將執行下列步驟:

  1. 複製代管執行個體群組目前使用的執行個體範本。
  2. 根據建議和您要進行的任何變更,修改複製的執行個體範本。
  3. 使用 Managed Instance Group Updater 套用新範本。如果執行個體群組具有兩個執行個體範本:

    1. 一次僅能為一個執行個體範本套用建議。
    2. 代管執行個體群組一次最多僅能維持兩個執行個體範本,因此無法一邊套用建議,一邊持續維持另外兩個執行個體範本。不過,如果執行個體群組僅具有一個執行個體範本,即可套用建議。

如要直接從主控台調整代管執行個體的規模:

  1. 前往 Cloud de Confiance 控制台的「Instance groups」(執行個體群組) 頁面。

    前往「Instance groups」(執行個體群組) 頁面

  2. 按一下要更新的執行個體群組的建議文字。

    選取建議欄。

  3. 這時會出現彈出式視窗,內有更多詳細資料,可選擇「取消」、「關閉」建議或「繼續」。如要檢視和套用建議,請按一下 [Continue] (繼續)

  4. 「查看建議」頁面會提供建議的詳細說明。如果您繼續進行建議,Compute Engine 會將執行個體群組中所有使用舊範本的執行個體更新為使用新範本。

  5. (進階) 如要自訂對執行個體導入新範本的方式,請按一下「自訂部署作業」。系統隨即會顯示「Deployment configuration」(部署設定) 畫面。

    1. 如要使用新的執行個體範本主動刪除及建立執行個體,請選擇「自動」。 如要僅在透過其他方式建立執行個體時套用更新 (例如調整大小),或是在群組中新增執行個體時套用更新,請選擇「選擇性」
    2. 如果選取自動更新,請選擇是否要在替換執行個體時保留執行個體名稱
      • 如果選擇保留執行個體名稱,請在「Temporary additional instances」(臨時額外執行個體) 下方,選擇要建立多少個超過代管執行個體群組目標大小的臨時額外執行個體。允許的執行個體數量越多,更新速度就越快,而額外的執行個體會產生費用。預設值為 1 個額外執行個體。
    3. 在「Maximum unavailable instances」(無法使用的執行個體數量上限) 下方,選擇更新期間可以同時離線的執行個體數量。這個數目也包括任何因其他原因而無法使用的執行個體。例如,如果執行個體群組正處於將規模調大的過程中,建立中的執行個體可能會無法使用,而這些執行個體就會計入這個數字中。預設值為一次將 1 個執行個體設為無法使用。
    4. 選用:展開「顯示進階選項」。 在「最短等待時間」下方,選擇將新執行個體標為已更新之前,所要等待的秒數。系統會在成功執行健康狀態檢查後開始計算時間。使用這項功能可控制套用執行個體範本的速率。
  6. 如要套用變更,請按一下「儲存」

  7. 準備好部署變更時,請按一下 [Deploy] (部署)

關閉建議

建議使用完畢後,可以從主控台中將其關閉。在主控台中,關閉建議會從預估節省費用總計中移除該建議,同時也會讓建議的外觀變成暗灰色,使其變得布明顯。

透過主控台關閉建議並不會影響 Recommender API 傳回的建議清單。如要管理 Recommender API 傳回的建議狀態,請參閱使用 API 一文。

如何在主控台中關閉單一建議:

  1. 前往 Cloud de Confiance 控制台的「Instance groups」(執行個體群組) 頁面。

    前往「Instance groups」(執行個體群組) 頁面

  2. 按一下您要關閉之建議的文字。這時會出現彈出式視窗,內有更多詳細資料,並會顯示「關閉」按鈕。

  3. 按一下「關閉」

如何在主控台中還原建議:

  1. 在「Instance groups」(執行個體群組) 頁面上,按一下想要還原之建議的灰色文字。

    已關閉的建議。

  2. 這時會出現彈出式視窗,內有更多詳細資料,並會顯示「還原」按鈕。

  3. 按一下「還原」

透過監控代理程式取得更精確的建議

Cloud Monitoring 提供 Monitoring 代理程式,可自您的 VM 執行個體收集額外的磁碟、CPU、網路和處理程序指標。您可在 VM 執行個體上安裝監控代理程式,這樣代理程式就能存取系統資源和應用程式服務來收集資料。

如果在 VM 執行個體上安裝並執行 Monitoring 代理程式,就會自動使用代理程式收集的 CPU 與記憶體指標來計算機型建議。與預設的 Compute Engine 指標相較之下,Monitoring 代理程式提供的代理程式指標對於執行個體的資源使用率,可提供更加詳盡的深入分析資訊。這可讓建議引擎更有效地預估資源需求,並提出更精確的建議。

如要安裝代理程式,請參閱「安裝 Cloud Monitoring 代理程式」。

後續步驟