指定 VM 執行個體的最低 CPU 平台

本頁說明如何建立或更新虛擬機器 (VM) 執行個體,以使用最低 CPU 平台,而非預設平台。

Google 資料中心提供不同世代的 CPU 處理器。每個 CPU 平台都支援增量功能,例如進階向量擴充功能 (例如 AVX2 和 AVX-512)。此外,時脈速度和記憶體存取搜尋時間等基本系統相關功能,在不同 CPU 平台之間可能有所差異。

每個機器系列都與一或多個 CPU 平台相關聯。舉例來說,N2 VM 可在 Ice Lake 或 Cascade Lake CPU 上執行。如果機型系列有多個可用的 CPU 平台,您可以使用該機型系列的機型建立 VM 時,選取最低 CPU 平台。機型系列、區域和可用區的可用性,決定了可選擇的最低 CPU 平台。

如果工作負載需要特定處理器世代提供的效能提升,指定最低 CPU 平台就很有用。不過,指定最低 CPU 平台可能會限制可建立 VM 的區域。

事前準備

  • 如果尚未設定驗證,請先完成設定。 驗證可確認您的身分,以便存取 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 平台所需的權限,請要求系統管理員授予您專案的下列 IAM 角色:

  • Compute 執行個體管理員 (v1) (roles/compute.instanceAdmin.v1)
  • 如要連線至可當做服務帳戶執行的 VM: 服務帳戶使用者 (第 1 版) (roles/iam.serviceAccountUser 角色)

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

選取最低 CPU 平台的時機

您通常不需要選取最低 CPU 平台。每個 Compute Engine 可用區都有各機器系列的預設 CPU 平台。新增伺服器時,Google 有時會變更區域的預設 CPU。如果未指定 VM 的最低 CPU 平台,VM 會取得與其機型和可用區相關聯的預設 CPU 平台。

Google 建議您僅在下列情況選取最低 CPU 平台:

  • 最低 CPU 平台能為工作負載帶來顯著效能提升,或提供如 AVX2 或 AVX-512 等用於程式碼的功能。
  • 建立會使用預留項目的 VM 時,您必須指定與預留項目相同的 CPU 平台。

為 VM 選取最低 CPU 平台會產生限制,影響您在某些 CPU 平台供應量有限的區域啟動 VM。

選取最低 CPU 平台的運作方式

如果可以,Compute Engine 一律會使用最低 CPU 平台。如果 Google 變更區域中的 CPU 平台,只要停止並重新啟動 VM,即可繼續在該區域中可用的最新 CPU 平台上執行 VM。

為 VM 選取最低 CPU 平台後,除非您停止 VM 並變更 CPU 平台,否則 VM 會使用這個 CPU 平台。在即時遷移時,VM 會繼續使用選取的 CPU 平台。

限制

  • 每個區域和可用區都支援多個 CPU 平台,但區域或可用區可能不會提供所有 CPU 平台。
  • 使用單一租戶節點的 VM 無法指定最低 CPU 平台。
  • 您無法為預先定義或自訂的 E2 VM 選取最低 CPU 平台。
  • 您無法為下列共用核心的一般用途 VM 選取最低 CPU 平台:
    • e2-micro
    • e2-small
    • e2-medium
    • f1-micro
    • g1-small

CPU 平台可用性

CPU 平台的可用性因可用區而異,取決於各可用區提供的硬體和機器系列。下表列出支援的最低 CPU 平台,以及每個平台的有效語法:

  • 第 5 代:Intel Xeon (Emerald Rapids) 處理器:"Intel Emerald Rapids"
  • 第 4 代:Intel Xeon (Sapphire Rapids) 處理器:"Intel Sapphire Rapids"
  • 第 3 代:Intel Xeon (Ice Lake) 處理器:"Intel Ice Lake"
  • 第 2 代:Intel Xeon (Cascade Lake) 處理器:"Intel Cascade Lake"
  • 第一代:Intel Xeon (Skylake) 處理器:"Intel Skylake"
  • Intel Xeon E5 v4 (Broadwell) 處理器:"Intel Broadwell"
  • Intel Xeon E5 v3 (Haswell) 處理器:"Intel Haswell"
  • Intel Xeon E5 v2 (Ivy Bridge) 處理器:"Intel Ivy Bridge"
  • Intel Xeon E5 (Sandy Bridge) 處理器:"Intel Sandy Bridge"
  • 第 5 代:AMD EPYC Turin 處理器:"AMD Turin"
  • 第 4 代:AMD EPYC Genoa 處理器:"AMD Genoa"
  • 第 3 代:AMD EPYC Milan 處理器:"AMD Milan"

依區域查看可用的 CPU 平台

只有特定區域和可用區包含相同機器系列的數個 CPU 平台,且支援選取最低 CPU 平台。如要查看特定可用區支援的平台清單,您可以使用 gcloud CLI 或 REST。

如果您使用專屬節點,每個節點都會使用與節點範本中定義的節點類型對應的 CPU 平台。

gcloud

  • 如要查看您區域中可用的 CPU 平台,請使用 gcloud compute zones describe 指令

    gcloud compute zones describe ZONE
    

    ZONE 替換成要檢查可用 CPU 平台的可用區名稱,例如 europe-west10-a

    下列指令輸出內容會列出 europe-west10-a 可用區的 CPU 平台:

    gcloud compute zones describe europe-west10-a
    availableCpuPlatforms:
    - Intel Broadwell
    - Intel Cascade Lake
    - Intel Ice Lake
    - AMD Milan
    - Intel Skylake
    
    ...
    

REST

  • 向您考慮的區域發出 GET 要求

    GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/ZONE
    

    ZONE 替換為要檢查可用 CPU 平台的可用區名稱。

    以下是這項指令的輸出內容,列出區域支援的 CPU 平台:

    {
      "kind": "compute#zone",
      "id": "2210",
      "creationTimestamp": "1969-12-31T09:30:55.189-07:00",
      "name": "europe-west10-a",
      "description": "europe-west10-a",
      "status": "UP",
      "region": "https://www.googleapis.com/compute/v1/projects/myproject/regions/europe-west10-a",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/europe-west10-a",
      "availableCpuPlatforms": [
       "Intel Broadwell",
       "Intel Cascade Lake",
       "Intel Ice Lake",
       "AMD Milan",
       "Intel Skylake"
      ],
      "supportsPzs": true
     }

CPU 平台的預設變更

Google 有時會變更 CPU 平台,或更新預設 CPU 平台。可用區容量會隨時間而增加,並會在新 CPU 平台變為可用時,主動切換至這個新平台。並將預設 CPU 平台更新為可在該可用區中使用的下一個最新平台。

當可用區的預設 CPU 平台變更時,Google 會通知受影響的客戶,並提供詳細時間軸和具體指示,協助他們轉換至新平台。

VM 不會使用比指定的最低 CPU 平台還舊的平台。如果 Compute Engine 將 VM 遷移至較新的平台,VM 的費用不會變更。

為新 VM 選取最低 CPU 平台

建立 VM 時,請選擇機器系列和機型。機器系列可能提供多個 CPU 平台。在這種情況下,您可以指定 VM 要使用的最低 CPU 平台

控制台

  1. 前往 Google Cloud 控制台的「Create an instance」(建立執行個體) 頁面。

    前往「建立執行個體」

  2. 在「機器設定」部分,展開「進階設定」部分。

  3. 在「CPU Platform」(CPU 平台) 清單中,選取 VM 的 CPU 平台。

  4. 繼續進行其餘的 VM 建立程序。

gcloud

  • 如要建立使用最低 CPU 平台的新 VM,請使用 gcloud compute instances create 指令並提供 --min-cpu-platform 旗標:

    gcloud compute instances create INSTANCE \
        --zone=ZONE \
        --min-cpu-platform="PLATFORM"

    更改下列內容:

    • INSTANCE:要建立的執行個體名稱
    • ZONE:要建立執行個體的區域名稱,例如 europe-west1-b
    • PLATFORM:您希望執行個體使用的最低 CPU 平台易記名稱,例如 Intel Sandy Bridge

      如要清除最低 CPU 平台規格,請將 PLATFORM 替換為 AUTOMATIC

      如要查看區域中可用的 CPU 平台,請參閱「依區域查看可用的 CPU 平台」。

REST

  • 使用 instances.insert 方法,並將 minCpuPlatform 屬性納入要求主體。

    例如,要求主體可能如下所示:

    "name": "INSTANCE",
    "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
    "minCpuPlatform": "PLATFORM",
    "networkInterfaces": [{
      "accessConfigs": [{
        "type": "ONE_TO_ONE_NAT",
        "name": "External NAT"
       }],
      "network": "global/networks/default"
    }],
    "disks": [{
       "autoDelete": "true",
       "boot": "true",
       "type": "PERSISTENT",
       "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
       }
     }]

    更改下列內容:

    • INSTANCE:新 VM 的名稱
    • ZONE:要建立 VM 的可用區名稱,例如 europe-west1-b
    • MACHINE_TYPE:新 VM 的機器類型
    • PLATFORM:您希望 VM 使用的最低 CPU 平台易記名稱,例如 Intel Ivy Bridge

      如要清除最低 CPU 平台規格,請將 PLATFORM 替換為 AUTOMATIC

      如要查看區域中可用的 CPU 平台,請參閱「依區域查看可用的 CPU 平台」。

    • IMAGE_PROJECT:映像檔系列的映像檔專案

    • IMAGE_FAMILY:用於建立 VM 的映像檔映像檔系列

為現有 VM 設定最低 CPU 平台

您可以為現有 VM 設定最低 CPU 平台。您必須先停止 VM,才能設定最低 CPU 平台。

控制台

  1. 前往「VM instances」(VM 執行個體) 頁面。

    前往 VM 執行個體

  2. 如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。

  3. 選取要變更的 VM。

  4. 按一下「停止」停止 VM。如果沒有「停止」選項,請依序按一下 「更多動作」> 「停止」

  5. 按一下 [編輯]

  6. 在「機器設定」部分中,按一下「進階設定」

  7. 從「CPU Platform」(CPU 平台) 下拉式選單中選取選項。

  8. 儲存變更。

  9. 選取您變更的 VM。

  10. 點選「啟動/重新啟用」

gcloud

  1. 如要停止 VM,請使用 gcloud compute instances stop 指令

    gcloud compute instances stop INSTANCE
    

    INSTANCE 替換為要指定最低 CPU 平台的 VM 名稱。

  2. 如要指定最低 CPU 平台,請使用 gcloud compute instances update 指令,並提供 --min-cpu-platform 標記:

    gcloud compute instances update INSTANCE \
        --min-cpu-platform="PLATFORM"

    PLATFORM 替換為您希望 VM 使用的最低 CPU 平台易記名稱,例如 Intel Cascade Lake

  3. 如要啟動更新後的 VM,請使用 gcloud compute instances start 指令

    gcloud compute instances start INSTANCE
    

REST

  1. 如要停止 VM,請使用 instances.stop 方法建構 POST 要求:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/stop
    

    更改下列內容:

    • PROJECT_ID:專案 ID
    • ZONE:VM 所在的可用區
    • INSTANCE:要指定最低 CPU 平台的 VM 名稱
  2. 如要設定最低 CPU 平台,請向 setMinCpuPlatform 方法發出 POST 要求,並在要求主體中設定 minCpuPlatform 屬性:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/setMinCpuPlatform
    {
      "minCpuPlatform": "PLATFORM"
    }
    

    PLATFORM 替換為您希望 VM 使用的最低 CPU 平台易記名稱,例如 Intel Skylake

  3. 如要重新啟動 VM,請使用 instances.start 方法建構 POST 要求:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/start
    

移除最低 CPU 平台設定

您可以更新 VM,改用預設 CPU 平台,而非最低 CPU 平台。如果 VM 正在執行,您必須先停止 VM,才能進行變更。

控制台

  1. 前往「VM instances」(VM 執行個體) 頁面。

    前往 VM 執行個體

  2. 如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。

  3. 選取要變更的 VM。

  4. 按一下「停止」

  5. 如要編輯 VM,請按一下「編輯」

  6. 在「機器設定」部分中,按一下「進階設定」

  7. 將「CPU Platform」(CPU 平台) 選項變更為「Automatic」(自動)

  8. 選取您變更的 VM。

  9. 點選「啟動/重新啟用」

gcloud

  1. 如要停止 VM,請使用 gcloud compute instances stop 指令

    gcloud compute instances stop INSTANCE
    

    INSTANCE 替換為要變更的 VM 名稱。

  2. 如要重設最低 CPU 平台,請使用 gcloud compute instances update 指令,並將 --min-cpu-platform 旗標設為 AUTOMATIC

    gcloud compute instances update INSTANCE \
        --min-cpu-platform="AUTOMATIC"
    
  3. 如要啟動更新後的 VM,請使用 gcloud compute instances start 指令

    gcloud compute instances start INSTANCE
    

REST

  1. 如要停止 VM,請使用 instances.stop 方法建構 POST 要求:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/stop
    

    更改下列內容:

    • PROJECT_ID:專案 ID
    • ZONE:VM 所在的可用區
    • INSTANCE:要變更的 VM 名稱
  2. 如要重設最低 CPU 平台,請向 setMinCpuPlatform 方法發出 POST 要求。在要求主體中,將 minCpuPlatform 屬性值設為 AUTOMATIC

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/setMinCpuPlatform
    {
      "minCpuPlatform": "AUTOMATIC"
    }
    
  3. 如要重新啟動更新後的 VM,請使用 instances.start 方法建構 POST 要求:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/start
    

在執行個體範本中指定最低 CPU 平台

如果您使用代管執行個體群組,可以為代管執行個體群組內的 VM 指定最低 CPU 平台。

如要指定最低 CPU 平台,請建立包含 minCpuPlatform 屬性的執行個體範本

控制台

  1. 前往「Instance templates」(執行個體範本) 頁面。

    前往「Instance templates」(執行個體範本) 頁面

  2. 如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。

  3. 點選「建立執行個體範本」

  4. 在「機器設定」部分中,按一下「進階設定」

  5. 從「CPU Platform」(CPU 平台) 下拉式選單中選取選項。

  6. 繼續執行個體範本建立程序。

gcloud

  • 使用 gcloud compute instance-templates create 指令建立執行個體範本時,請提供 --min-cpu-platform 旗標:

    gcloud compute instance-templates create TEMPLATE_NAME \
        --min-cpu-platform="PLATFORM"

    更改下列內容:

    • TEMPLATE_NAME:執行個體範本的名稱
    • PLATFORM:您希望執行個體使用的最低 CPU 平台易記名稱,例如 Intel Skylake

REST

  • 新增 minCpuPlatform 做為要求的一部分,以使用 instanceTemplates.insert 方法建立新的執行個體範本。

    舉例來說,下列執行個體範本包含建立新範本時所須填寫的基本欄位,並加入了 minCpuPlatform 屬性:

    {
    "name": "example-template",
    "properties": {
      "machineType": "zones/us-central1-a/machineTypes/n2d-standard-2",
      "minCpuPlatform": "AMD Milan",
      "networkInterfaces": [
        {
          "network": "global/networks/default"
        }
      ],
      "disks":
      [
        {
          "type": "PERSISTENT",
          "boot": true,
          "mode": "READ_WRITE",
          "initializeParams":
          {
            "sourceImage": "projects/debian-cloud/global/images/family/debian-11"
          }
        }
      ]
      }
    }

後續步驟