根據 CPU 使用率調度資源


最簡單的自動調度資源方式,就是根據執行個體的 CPU 使用率來調度受管理的執行個體群組 (MIG)

您也可以根據負載平衡服務規模監控指標排程自動調度 MIG。

事前準備

  • 查看自動調度資源限制
  • 閱讀自動配置器基本概念
  • 如果尚未設定,請先設定驗證機制。驗證是指驗證身分,以便存取 Google Cloud 服務和 API 的程序。如要在本機開發環境中執行程式碼或範例,您可以選取下列任一選項,向 Compute Engine 進行驗證:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.

    REST

    To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.

      After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    For more information, see Authenticate for using REST in the Google Cloud authentication documentation.

根據 CPU 使用率調度資源

您可以依據代管執行個體群組 (MIG) 的平均 CPU 使用率自動調度資源。使用此政策會要求自動配置器收集群組中執行個體的 CPU 使用率,並確定其是否需要調度資源。您也可以設定自動配置器要維持的目標 CPU 使用率,則自動配置器會運作以維持該目標等級。

對自動配置器而言,目標 CPU 使用率等級就等於是執行個體群組內、所有 vCPU 長時間平均使用情況的一部分。如果總 vCPU 的平均使用率超過目標使用率,自動配置器會新增更多 VM 執行個體。如果總 vCPU 的平均使用率低於目標使用率,自動配置器會移除執行個體。舉例來說,如果將目標使用率設為 0.75,自動配置器就會將執行個體群組中所有 vCPU 的平均使用率維持在 75%。

您也可以根據預測的 CPU 使用率調度資源。如需進一步瞭解這項功能是否適合您的工作負載,請參閱「根據預測結果調度資源」一文。

啟用根據 CPU 使用率自動調度資源

主控台

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

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

  2. 如果您有執行個體群組,請選取該群組,然後按一下「Edit」(編輯)。如果您沒有執行個體群組,請按一下 [Create instance group] (建立執行個體群組)

  3. 如果沒有自動調度資源設定,請按一下「Autoscaling」(自動調度資源) 下方的「Configure autoscaling」(設定自動調度資源功能)

  4. 在「Autoscaling mode」(自動調度資源模式) 底下,選取「On: add and remove instances to the group」(開啟:在群組中新增和移除執行個體) 即可啟用自動調度資源功能。

  5. 指定您要讓自動配置器在這個群組中建立的執行個體數量下限與上限。

  6. 在「Autoscaling signals」區段中,如果目前沒有「CPU utilization」指標,請先新增這個指標:

    1. 按一下「新增信號」
    2. 在「信號類型」下拉式選單中,選取「CPU 使用率」
    3. 在「Target CPU utilization」(目標 CPU 使用率) 中輸入您想要的值,系統會將這個值以百分比格式處理。例如,若需 75% 的 CPU 使用率,請輸入 75
    4. 在「Predictive autoscaling」(預測式自動調度資源) 底下,選取「Off」(關閉)。如要進一步瞭解預測式自動調度資源功能,以及這項功能是否適合您的工作負載,請參閱「根據預測結果調度資源」一文。
    5. 按一下 [完成]
  7. 您可以使用「Initialization period」(初始化期間),讓自動配置器知道應用程式初始化所需的時間。指定正確的初始化期間可提升自動配置器的決策品質。舉例來說,向外擴充時,自動配置器會忽略仍在初始化的 VM 資料,因為這些 VM 可能尚未呈現您應用程式的一般使用情形。預設的初始化週期為 60 秒。

  8. 按一下 [儲存]

gcloud

請使用 set-autoscaling 子指令,啟用代管執行個體群組的自動調度資源功能。舉例來說,下列指令會建立目標 CPU 使用率為 60% 的自動配置器。建立自動配置器時,除了 --target-cpu-utilization 參數,還需要 --max-num-replicas 參數:

gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \
    --max-num-replicas 20 \
    --target-cpu-utilization 0.60 \
    --cool-down-period 90

您可以使用 --cool-down-period 標記設定初始化期間,讓自動配置器知道應用程式初始化所需的時間。指定正確的初始化期間可提升自動配置器的決策品質。舉例來說,向外擴充時,自動配置器會忽略仍在初始化的 VM 資料,因為這些 VM 可能尚未呈現您應用程式的一般使用情形。預設的初始化週期為 60 秒。

您可以選擇啟用預測式自動調度資源功能,在預測負載出現前進行擴展。如要瞭解預測式自動調度資源是否適合您的工作負載,請參閱「根據預測結果調度資源」。

您可以使用 instance-groups managed describe 子指令來驗證是否已成功啟用自動調度資源功能,這個指令會說明對應的代管執行個體群組,並提供該執行個體群組自動調度資源功能的相關資訊:

gcloud compute instance-groups managed describe example-managed-instance-group

如需可用的 gcloud 指令和旗標清單,請參閱 gcloud 參考資料

REST

如要建立自動配置器,請針對區域 MIG 使用 autoscalers.insert 方法,針對區域 MIG 使用 regionAutoscalers.insert 方法

以下範例會為區域 MIG 建立自動配置器:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers/

要求主體必須包含 nametargetautoscalingPolicy欄位。而 autoscalingPolicy 必須定義 cpuUtilizationmaxNumReplicas

您可以使用 coolDownPeriodSec 欄位設定初始化期間,讓自動配置器知道應用程式初始化所需的時間。指定正確的初始化期間可提升自動配置器的決策品質。舉例來說,向外擴充時,自動配置器會忽略仍在初始化的 VM 資料,因為這些 VM 可能尚未呈現您應用程式的一般使用情形。預設的初始化週期為 60 秒。

您可以選擇啟用預測式自動調度資源功能,在預測負載出現前進行擴展。如要瞭解預測式自動調度資源是否適合您的工作負載,請參閱「根據預測結果調度資源」。

{
  "name": "example-autoscaler",
  "target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instanceGroupManagers/example-managed-instance-group",
  "autoscalingPolicy": {
    "maxNumReplicas": 10,
    "cpuUtilization": {
      "utilizationTarget": 0.6
    },
    "coolDownPeriodSec": 90
  }
}

如要進一步瞭解依據 CPU 使用率來啟用自動調度資源功能的資訊,請完成以下教學課程:對高擴充性的應用程式序使用自動調度資源功能

自動配置器如何處理繁重的 CPU 使用率

當 CPU 使用率偏高時,如果使用率接近 100%,自動配置器會估計群組可能已嚴重超載。在這種情況下,自動配置器最多可將虛擬機器數量增加 50%。

後續步驟