對 MIG 套用機器類型建議

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

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

機型建議也稱為適當調整大小的建議。

事前準備

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

    選取這個頁面上範例的預計用途分頁:

    控制台

    使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,不需要設定驗證。

    gcloud

    1. 安裝 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,透過 建議工具 查看機型建議。

控制台

  1. 前往 Google Cloud 控制台的「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. 使用代管執行個體群組更新程式套用新範本。如果執行個體群組具有兩個執行個體範本:

    1. 一次僅能為一個執行個體範本套用建議。
    2. 代管執行個體群組一次最多可維護兩個執行個體範本,因此您無法在維護另外兩個執行個體範本的同時套用建議。不過,如果執行個體群組只有一個執行個體範本,您就可以套用建議。

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

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

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

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

    選取建議欄。

  3. 系統會顯示彈出式視窗,提供更多詳細資料,並讓您選擇「取消」、「關閉」建議或「繼續」。如要檢視和套用建議,請按一下 [Continue] (繼續)。

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

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

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

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

關閉建議

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

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

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

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

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

  2. 按一下您要關閉之建議的文字。系統會顯示彈出式視窗,內含更多詳細資料和「關閉」按鈕。

  3. 點選「關閉」。

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

  1. 在「執行個體群組」頁面中,按一下要還原的灰色建議文字。

    已關閉的建議。

  2. 系統會顯示彈出式視窗,內含更多詳細資料和「還原」按鈕。

  3. 按一下「還原」。

使用監控代理程式取得更精準的建議

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

如果 Monitoring Agent 已安裝在 VM 執行個體上並正在執行,系統會自動使用該 Agent 收集的 CPU 和記憶體指標,計算機器類型建議。與預設的 Compute Engine 指標相較之下,Monitoring 代理程式提供的代理程式指標對於執行個體的資源使用率,可提供更加詳盡的深入分析資訊。這樣推薦引擎就能更準確地估算資源需求,並提供更精確的建議。

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

後續步驟