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

本文說明如何建立或更新虛擬機器執行個體,以在一切可能情況下使用基準最低 CPU 平台 (minCpuPlatform)。

Google 資料中心提供內含 Sandy Bridge、Ivy Bridge、Haswell、Broadwell 與 Skylake CPU 平台的 Intel Xeon 主機。每個 CPU 平台都支援像是 AVX-2、AVX-512 等漸進式功能。一些基本的系統相關功能 (例如時脈速度與記憶體存取搜尋時間) 在各 CPU 平台中有所不同。不同區域支援多個 CPU 平台,且您可以為 VM 執行個體選取 CPU 平台,藉此使用可滿足工作負載特定需求的最低平台。

如要瞭解每個區域的可用 CPU 平台,請參閱 CPU 平台地區和區域說明文件。

事前準備

選取最低 CPU 平台的時機

您通常不需要為 VM 選取最低 CPU 平台。每個 Compute Engine 區域都有預設的 CPU 平台,地區和區域說明文件中有詳細清單。任何未配備最低 CPU 規格的新建 VM 都會自動取得預設 CPU 平台。

Google 建議您僅在能為工作負載帶來顯著效能提升,或提供如 AVX2、AVX512 或 MPX 等用於程式碼的特定功能時,才選取最低 CPU 平台。為您的 VM 選取特定最低 CPU 平台會產生額外的限制,影響您在一些 CPU 平台的提供受到限制的特定區域中啟動 VM 的能力。

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

當您指定最低 CPU 平台時:

  1. 如果可以,Compute Engine 一律會使用最低 CPU 平台。
  2. 如果 Compute Engine 淘汰區域的 CPU 平台,您的 VM 可在停止並重新啟動之後,繼續在適用於這個區域的更佳 CPU 平台上執行。淘汰 CPU 平台的情況並不會經常發生,且您會提前收到通知。

為 VM 選取最低 CPU 平台之後:

  • 除非您停止 VM 並將選取的 CPU 平台變更為其他選項,否則您的 VM 將使用這個 CPU 平台。
  • 在即時遷移時,VM 會繼續使用選取的 CPU 平台。
  • Google 有時可能需要更新區域的預設 CPU 平台。詳情請參閱淘汰或升級預設 CPU 平台一節。

淘汰或升級預設 CPU 平台

Google 有時會淘汰舊的 CPU 平台,或更新特定區域中的預設 CPU 平台,因為:

  • 區域容量會隨時間而增加,並會在新 CPU 平台變為可用時,主動切換至這個新平台。
  • Google 每隔 3 到 5 年,就會將舊 CPU 平台汰換為新平台,並會將預設 CPU 平台更新為可在這個區域中使用的下一個最新平台。

新地區或區域一旦建立,便都會使用最新的 CPU 平台。

當淘汰區域或變更區域的預設 CPU 平台時,Google 會預先通知受影響的客戶,向他們提供轉移到新平台的詳細時程與特定操作說明。

VM 絕不會使用比您指定的最低 CPU 平台還要舊的平台,且 VM 的成本在 Compute Engine 將您的 VM 轉移到更新平台時不會變更。

規格

限制

  • f1-small 與 g1-small 預先定義的機器類型是共用核心的一般用途 VM。這些機器不會提供 CPU 平台選項。

可用性

根據每個區域中可用的硬體而定,特定 CPU 平台的可用性在各區域之間是不同的。下列是支援的最低 CPU 平台以及每個平台的有效語法:

  • Intel Xeon E5 (Sandy Bridge) 處理器:"Intel Sandy Bridge"
  • Intel Xeon E5 v2 (Ivy Bridge) 處理器:"Intel Ivy Bridge"
  • Intel Xeon E5 v3 (Haswell) 處理器:"Intel Haswell"
  • Intel Xeon E5 v4 (Broadwell) 處理器:"Intel Broadwell"
  • Intel Xeon (Skylake) 處理器:"Intel Skylake"

只有特定區域包含多個 CPU 平台,且支援選取最低 CPU 平台。如需完整清單,請參閱地區和區域頁面。

如要查看特定區域支援的平台清單,您隨時可以使用 gcloud compute zones describe 指令或向 API 發出要求。

gcloud

如要查看您區域中的 CPU 平台:

gcloud compute zones describe [ZONE]

例如,此指令的輸出內容會列出 us-west1-a 區域的 CPU 平台:

$ gcloud compute zones describe us-west1-a
availableCpuPlatforms:
- Intel Skylake
- Intel Broadwell
...

API

在 API 中,向相關區域發出 GET 要求:

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

回應會包含這個區域支援 CPU 平台的清單。例如:

{
 "kind": "compute#zone",
 "id": "2210",
 "creationTimestamp": "2016-06-10T09:30:55.189-07:00",
 "name": "us-west1-a",
 "description": "us-west1-a",
 "status": "UP",
 "region": "https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-west1",
 "selfLink": "https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-west1-a",
 "availableCpuPlatforms": [
  "Intel Broadwell",
  "Intel Haswell"
 ]
}

為新 VM 選取最低 CPU 平台

您可以在建立執行個體期間,指定最低 CPU 平台。

主控台

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

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

  2. 如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。
  3. 點選 [Create instance] (建立執行個體) 按鈕。
  4. 在「Machine configuration」(機器設定) 區段之下,按一下 [CPU platform and GPU] (CPU 平台和 GPU)。
  5. 從「CPU platform」(CPU 平台) 下拉式選單中選取選項。
  6. 繼續進行其餘的執行個體建立程序。

gcloud

如要使用 gcloud 指令列工具建立具有最低 CPU 平台的新 VM,請提供新的 --min-cpu-platform 旗標。指定 CPU 平台時,請為平台提供易記的名稱,例如 Intel BroadwellIntel Haswell。請參考可用區域一節,判斷每個區域適用的平台。

舉例來說,如要指定 Intel Haswell 的最低 CPU 平台:

gcloud compute instances create example-instance \
    --zone europe-west1-b \
    --min-cpu-platform "Intel Haswell"

API

在 Compute Engine API 中,將 minCpuPlatform 屬性加入要求主體。minCpuPlatform 的值必須為平台的易記名稱,例如 Intel HaswellIntel BroadwellIntel Sandy Bridge

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

"name": "[INSTANCE_NAME]",
"machineType": "zones/[ZONE]/machineTypes/[MACHINE_TYPE]",
"minCpuPlatform": "Intel Haswell",
"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]"
   }
 }]

為停止的 VM 設定最低 CPU 平台

如果您先停止執行個體,就可以為現有執行個體設定最低 CPU 平台。

停止執行個體之後,請按照下列操作說明設定最低 CPU 平台,然後務必重新啟動執行個體

主控台

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

    前往「VM Instances」(VM 執行個體) 頁面

  2. 如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。
  3. 選取您要變更的已停止執行個體
  4. 點選 [Edit] (編輯) 以編輯執行個體。
  5. 在「Machine configuration」(機器設定) 區段之下,按一下 [CPU platform and GPU] (CPU 平台和 GPU)。
  6. 從「CPU platform」(CPU 平台) 下拉式選單中選取選項。
  7. 儲存變更。
  8. 重新啟動執行個體

gcloud

使用 update 子指令,隨後加上 --min-cpu-platform 旗標。為平台指定易記的名稱,例如 Intel HaswellIntel BroadwellIntel Sandy Bridge。例如:

gcloud compute instances update [INSTANCE_NAME] \
    --min-cpu-platform "Intel Haswell"

API

如要在 API 中設定最低 CPU 平台,請向 setMinCpuPlatform 方法發出 POST 要求,並在要求主體中設定 minCpuPlatform 屬性。屬性的值是 CPU 平台的易記名稱,例如 Intel HaswellIntel BroadwellIntel Sandy Bridge。例如:

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE]/setMinCpuPlatform

{
  "minCpuPlatform": "Intel Haswell"
}

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

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

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

主控台

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

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

  2. 如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。
  3. 點選 [Create instance template] (建立執行個體範本)
  4. 在「Machine configuration」(機器設定) 區段之下,按一下 [CPU platform and GPU] (CPU 平台和 GPU)。
  5. 從「CPU platform」(CPU 平台) 下拉式選單中選取選項。
  6. 繼續執行個體範本建立程序。

gcloud

使用 gcloud 工具,在建立執行個體範本時提供 --min-cpu-platform 旗標。例如:

gcloud compute instance-templates create example-template \
    --min-cpu-platform "Intel Haswell"

API

在 API 中,新增 minCpuPlatform 做為要求的一部分,以在 API 中建立新的執行個體範本。

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

{
"name": "example-template",
"properties": {
  "machineType": "zones/us-central1-a/machineTypes/n1-standard-4",
  "minCpuPlatform": "Intel Haswell",
  "networkInterfaces": [
    {
      "network": "global/networks/default",
      "accessConfigs":
      [
        {
          "name": "external-IP",
          "type": "ONE_TO_ONE_NAT"
        }
      ]
    }
  ],
  "disks":
  [
    {
      "type": "PERSISTENT",
      "boot": true,
      "mode": "READ_WRITE",
      "initializeParams":
      {
        "sourceImage": "projects/debian-cloud/global/images/family/debian-8"
      }
    }
  ]
  }
}

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Compute Engine 說明文件