如果機器類型可在不同的 CPU 平台上執行,本頁面會說明如何建立或更新 Compute Engine 執行個體,以使用指定的 CPU 相容性等級,而非預設等級。
Google Cloud 資料中心提供不同世代的 CPU 處理器。這些處理器支援遞增功能,例如進階向量擴充功能 (例如 AVX2 和 AVX-512)。此外,時脈速度、NUMA 分割和記憶體存取搜尋時間等基本功能,也可能因 CPU 處理器而異。「CPU 平台」是指以 CPU 為基礎的設定。
每個機器系列都可搭配一或多個 CPU 處理器。舉例來說,C4 執行個體可搭載 Intel Emerald Rapids 或 Granite Rapids CPU。如果機器系列支援多個 CPU,您可以在建立執行個體時選擇最低 CPU 平台。可為 CPU 數量下限設定的值,取決於您為運算執行個體選擇的機型、區域和可用區。
如果工作負載對 CPU 專屬功能 (例如指令集 (AVX2 而非 AVX-512)、快取大小或時脈速度) 較為敏感,則選擇特定 CPU 會很有幫助,因為這些功能可能會因 CPU 平台而異。
- 您可以將最低 CPU 設為較新的處理器,以充分運用更高的時脈頻率
- 您可以將最低 CPU 設為較舊的處理器,確保應用程式相容。
不過,使用最低 CPU 設定可能會限制運算執行個體可執行的區域。
事前準備
-
如果尚未設定驗證,請先完成設定。驗證程序會確認您的身分,以便授予 Google Cloud 服務和 API 的存取權。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
請根據您打算如何使用本頁範例,選取對應的分頁標籤:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,您不需要設定驗證機制。
gcloud
-
安裝 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) -
如要連線至可做為服務帳戶執行的運算執行個體:
服務帳戶使用者 (第 1 版) (
roles/iam.serviceAccountUser角色)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
選取最低 CPU 平台的時機
每個 Compute Engine 可用區都有各個機器系列的預設 CPU。如果未指定執行個體的最低 CPU 值,運算執行個體會使用指派給機器類型和可用區的預設 CPU。
建議您只在下列情況選擇 CPU 平台相容性等級:
- 效能:如果特定處理器能大幅提升工作負載速度,或具備程式碼所需的 AVX-512 等功能
- 相容性:如果運算執行個體需要特定作業系統、指令集或程式庫,但較新的 CPU 平台不支援這些項目
- 預留項目:如果您使用預留項目,運算執行個體必須使用與預留項目相同的 CPU 平台。
使用預設 CPU 平台
如果未指定執行個體的最低 CPU,系統會將最低 CPU 設為 AUTOMATIC。這表示執行個體會使用機型的預設 CPU 平台。
在極少數情況下, Google Cloud會更新機型和可用區的 CPU 平台。
選取最低 CPU 平台的運作方式
指定最低 CPU 的值後,Compute Engine 會為執行個體提供該 CPU 平台。除非您變更 CPU 平台,否則運算執行個體會繼續使用該平台。
即使在維護作業期間進行即時遷移,運算執行個體仍會使用指定的 CPU 平台。
限制
- 每個區域和可用區都支援多個 CPU 平台,但區域或可用區可能不會提供所有 CPU 平台。
- 您無法為在單一租戶節點上執行的運算執行個體指定最低 CPU 平台。
- 您無法為任何 E2 虛擬機器 (VM) 執行個體選取最低 CPU 平台。
- 如果 VM 執行個體是以共用核心、一般用途機型建立,則無法指定最低 CPU 平台。
CPU 平台可用性
CPU 平台在各個可用區的適用情形不盡相同,取決於各可用區提供的硬體和機器系列。如要查看 Google Cloud 可用的 CPU 平台,以及與各 CPU 平台相關聯的機器系列,請參閱「CPU 平台」。
下表列出支援的最低 CPU 平台,以及各平台的有效語法:
| 處理器 | 語法 |
|---|---|
| 第 6 代 Intel Xeon (Granite Rapids) | Intel Granite Rapids |
| 第 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 |
| 第 1 代 Intel Xeon (Skylake) | Intel Skylake |
| Intel Xeon E7 或 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 |
| NVIDIA Grace (Arm Neoverse V2) | NVIDIA Grace |
| Google Axion (Neoverse V2 Armv9) | Google Axion |
| Google Axion (Neoverse N3 Armv9.2) | Google Axion |
| Ampere Altra (Arm Neoverse N1) | Ampere Altra |
依可用區查看可用的 CPU
部分區域和可用區支援同一機器系列的多個 CPU 平台。您可以使用 Google Cloud CLI 或 REST,查看可用區中可用的 CPU。
如果您使用單一租戶節點,每個節點會使用與節點範本中定義的節點類型對應的 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 Cloud 會更新可用區中某個機器系列的預設 CPU 平台。發生這種情況時, Google Cloud 會通知您,並提供時間表和遷移至新平台的指示。
- 如果您為運算執行個體指定了最低 CPU 平台:變更預設 CPU 平台不會影響執行個體。Compute Engine 絕不會提供比執行個體最低 CPU 屬性指定的 CPU 平台還舊的平台。
- 如果您未指定最低 CPU 值:執行個體可以在較新的 CPU 平台上執行;如果執行個體使用可用區的舊預設 CPU 平台,則在Google Cloud 變更該可用區的預設 CPU 平台後,可能無法使用該 CPU 平台。
如果 Compute Engine 在較新的 CPU 平台上執行運算執行個體,運算執行個體的費用不會變更。
如果機型系列的預設 CPU 平台有所變更,您可以採取下列任一做法:
- 如要維持先前預設 CPU 平台的相容性等級,請為執行個體設定最低 CPU 屬性。
- 將最低 CPU 屬性設為
AUTOMATIC,然後停止並重新啟動執行個體,讓運算執行個體使用較新的 CPU 平台。
為新執行個體選擇 CPU 平台
建立運算執行個體時,如果機器系列支援多個 CPU 平台,您可以使用最低 CPU 屬性,指定執行個體要使用的 CPU 平台。
控制台
前往 Google Cloud 控制台的「建立執行個體」頁面。
在「機器設定」部分,展開「進階設定」部分。
在「CPU Platform」(CPU 平台) 清單中,選取執行個體 CPU 的平台。
繼續進行其餘的執行個體建立程序。
gcloud
如要建立使用最低 CPU 平台的新運算執行個體,請使用
gcloud compute instances create指令,並提供--min-cpu-platform旗標:gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --min-cpu-platform="PLATFORM"更改下列內容:
INSTANCE_NAME:要建立的執行個體名稱ZONE:要建立執行個體的區域名稱,例如europe-west1-bPLATFORM:您希望執行個體使用的最低 CPU 平台友善名稱,例如Intel Sandy Bridge如要清除最低 CPU 平台規格,請將
PLATFORM替換為AUTOMATIC。如要查看可用區中可用的 CPU 平台,請參閱「依可用區查看可用的 CPU 平台」。
REST
使用
instances.insert方法,並在要求主體中加入minCpuPlatform屬性。例如,要求主體可能如下所示:
"name": "INSTANCE_NAME", "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_NAME:新運算執行個體的名稱ZONE:要建立運算執行個體的區域名稱,例如europe-west1-bMACHINE_TYPE:新運算執行個體的機器類型PLATFORM:執行個體應使用的最低 CPU 平台易記名稱,例如Intel Ivy Bridge如要清除最低 CPU 平台規格,請將
PLATFORM替換為AUTOMATIC。如要查看可用區中可用的 CPU 平台,請參閱「依可用區查看可用的 CPU 平台」。
IMAGE_PROJECT:映像檔系列的映像檔專案IMAGE_FAMILY:用於建立運算執行個體的映像檔映像檔系列
變更現有執行個體的 CPU
如要變更現有運算執行個體的 CPU,請先停止執行個體。
控制台
前往「VM instances」(VM 執行個體) 頁面。
如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。
選取要變更的運算執行個體。
按一下「 Stop」(停止),停止運算執行個體。如果沒有「Stop」(停止) 選項,請依序按一下 「More actions」(更多動作) > 「Stop」(停止)。
按一下 [編輯]。
在「機器設定」部分,按一下「進階設定」。
從「CPU Platform」下拉式選單中選取所需選項。
儲存變更。
選取您變更的運算執行個體。
點選「啟動/重新啟用」。
gcloud
如要停止運算執行個體,請使用
gcloud compute instances stop指令:gcloud compute instances stop INSTANCE_NAME --zone=ZONE更改下列內容:
INSTANCE_NAME:要指定最低 CPU 平台的運算執行個體名稱ZONE:建立運算執行個體的區域名稱,例如europe-west1-b
如要指定最低 CPU 平台,請使用
gcloud compute instances update指令,並提供--min-cpu-platform旗標:gcloud compute instances update INSTANCE_NAME \ --zone=ZONE \ --min-cpu-platform="PLATFORM"更改下列內容:
INSTANCE_NAME:要更新的運算執行個體名稱ZONE:您建立運算執行個體的可用區名稱PLATFORM:您希望運算執行個體使用的 CPU 平台友善名稱,例如Intel Granite Rapids。
如要啟動更新後的運算執行個體,請使用
gcloud compute instances start指令:gcloud compute instances start INSTANCE_NAME --zone=ZONE
REST
如要停止運算執行個體,請使用
instances.stop方法建構POST要求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/stop
更改下列內容:
PROJECT_ID:專案 IDZONE:運算執行個體所在的可用區INSTANCE_NAME:要指定最低 CPU 平台的運算執行個體名稱
如要設定最低 CPU 平台,請對
setMinCpuPlatform方法建構POST要求,並在要求主體中設定minCpuPlatform屬性:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setMinCpuPlatform { "minCpuPlatform": "PLATFORM" }將
PLATFORM替換為要讓運算執行個體使用的最低 CPU 平台友善名稱,例如Intel Skylake。如要重新啟動運算執行個體,請使用
instances.start方法建構POST要求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/start
重設為預設 CPU
如要改回使用預設 CPU,必須停止運算執行個體 (如果正在執行)。
控制台
前往「VM instances」(VM 執行個體) 頁面。
如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。
選取要變更的執行個體。
按一下「停止」。
如要編輯執行個體,請按一下「Edit」(編輯)。
在「Machine configuration」(機器設定) 部分,按一下「Advanced configurations」(進階設定)。
將「CPU 平台」選項變更為「自動」。
選取您變更的執行個體。
點選「啟動/重新啟用」。
gcloud
如要停止運算執行個體,請使用
gcloud compute instances stop指令:gcloud compute instances stop INSTANCE_NAME
將
INSTANCE_NAME替換為要變更的運算執行個體名稱。如要重設最低 CPU 平台,請使用
gcloud compute instances update指令,並將--min-cpu-platform旗標設為AUTOMATIC:gcloud compute instances update INSTANCE_NAME \ --min-cpu-platform="AUTOMATIC"如要啟動更新後的運算執行個體,請使用
gcloud compute instances start指令:gcloud compute instances start INSTANCE_NAME
REST
如要停止運算執行個體,請使用
instances.stop方法建構POST要求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/stop
更改下列內容:
PROJECT_ID:專案 IDZONE:運算執行個體所在的可用區INSTANCE_NAME:要變更的運算執行個體名稱
如要重設最低 CPU 平台,請建構
POST要求,並傳送至setMinCpuPlatform方法。在要求主體中,將minCpuPlatform屬性值設為AUTOMATIC。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setMinCpuPlatform { "minCpuPlatform": "AUTOMATIC" }如要重新啟動更新後的執行個體,請使用
instances.start方法建構POST要求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/start
在執行個體範本中使用 CPU 平台相容性等級
如果您使用代管執行個體群組,可以為群組中的所有運算執行個體設定 CPU 平台相容性層級。
如要這麼做,請建立執行個體範本,並設定 minCpuPlatform 屬性。
控制台
前往「Instance templates」(執行個體範本) 頁面。
如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。
點選「建立執行個體範本」。
在「機器設定」部分,按一下「進階設定」。
從「CPU Platform」(CPU 平台) 下拉式選單中選取所需選項。
繼續執行個體範本建立程序。
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
使用
instanceTemplates.insert方法建立新的執行個體範本時,請在要求中加入minCpuPlatform。舉例來說,下列執行個體範本包含建立新範本所需的最低欄位,並新增
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-13" } } ] } }
後續步驟
- 查看 Compute Engine 上的 CPU 平台清單。
- 變更運算執行個體的機型。
- 進一步瞭解地區和區域。
- 建立和啟動 Windows Server 或 SQL Server 執行個體。