为虚拟机实例指定最低要求 CPU 平台

本文档将介绍如何创建或更新虚拟机实例以使用基准最低要求 CPU 平台 (minCpuPlatform)(只要可供使用)。

Google 数据中心提供基于 Intel Xeon 的主机,包含 Sandy Bridge、Ivy Bridge、Haswell、Broadwell 和 Skylake CPU 平台。每个 CPU 平台都支持增量功能,如 AVX-2、AVX-512 等。一些与基本系统相关的功能,如时钟速度和存储设备存取寻道时间可能因 CPU 平台而异。不同的地区支持多种 CPU 平台,您可以通过最低要求平台选项,为您的虚拟机实例选择一个支持工作负载特定需求的 CPU 平台。

要了解每个地区可用的 CPU 平台,请阅读 CPU 平台区域和地区文档。

准备工作

何时选择最低要求 CPU 平台

您很可能无需为虚拟机选择最低要求 CPU 平台。每个 Compute Engine 地区均有默认的 CPU 平台,具体请参阅区域和地区文档中所列内容。任何没有设置最低要求 CPU 规格的新创建的虚拟机都将自动获得默认的 CPU 平台。

Google 建议您仅在显著提升工作负载性能或提供特定功能(例如代码所用的 AVX2、AVX512 或 MPX)时选择最低要求 CPU 平台。为您的虚拟机选择某个特定的最低要求 CPU 平台会产生额外的限制,可能使您无法在某些 CPU 平台供应量有限的特定地区中启动虚拟机。

选择最低要求 CPU 平台后的工作方式

当您指定了某个最低要求 CPU 平台后:

  1. Compute Engine 总是尽可能使用最低要求 CPU 平台。
  2. 如果 Compute Engine 弃用某个地区中的 CPU 平台,则在您停止并重启虚拟机之后,您的虚拟机可以继续在该地区中某个更好的 CPU 平台上运行。弃用 CPU 平台的情况非常少见,即便发生这种情况,我们也会提前通知您。

在您为某个虚拟机选择了最低要求 CPU 平台后:

  • 除非您停止虚拟机并将选定的 CPU 平台更改为其他选项,否则您的虚拟机将使用此 CPU 平台。
  • 实时迁移后,您的虚拟机将保留相同的选定 CPU 平台。
  • 有时,Google 可能会更新某个地区的默认 CPU 平台。如需了解详情,请阅读弃用或升级默认的 CPU 平台

弃用或升级默认 CPU 平台

有时,Google 会弃用较旧的 CPU 平台或更新特定地区中的默认 CPU 平台,这是因为:

  • 随着时间推移,地区容量会不断增加,且在平台可用时主动切换到较新的 CPU 平台。
  • 每 3 到 5 年,Google 就会用较新的 CPU 平台替换较旧的平台,并将默认 CPU 平台更新为该地区中可用的下一最新平台。

不管任何时候,新的区域或地区建立时,其将使用当时最新的 CPU 平台。

当某个地区被弃用或该地区的默认 CPU 平台发生变化时,Google 会提前通知受影响的客户,并提供转换到较新平台的详细时间表和具体说明。

虚拟机绝对不会使用比您指定的最低要求 CPU 平台更早的平台,而且如果 Compute Engine 将您的虚拟机转换到较新的平台上,虚拟机的费用不会改变。

规格

限制

  • f1-small 和 g1-small 预定义机器类型为共享核心通用虚拟机。这些类型将不具备 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

例如,以下命令列出了适用于 us-west1-a 地区的 CPU 平台:

gcloud compute zones describe us-west1-a

availableCpuPlatforms:
- Intel Broadwell
- Intel Haswell
...

API

在 API 中,向存在问题的地区发出 GET 请求:

GET https://www.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://www.googleapis.com/compute/v1/projects/myproject/regions/us-west1",
 "selfLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-west1-a",
 "availableCpuPlatforms": [
  "Intel Broadwell",
  "Intel Haswell"
 ]
}

为新的虚拟机选择最低要求 CPU 平台

您可以在实例创建期间指定最低要求 CPU 平台。

GCP Console

  1. 转到“虚拟机实例”页面。

    转到“虚拟机实例”页面

  2. 如果出现提示,请选择您的项目并点击继续
  3. 点击创建实例按钮。
  4. 机器类型部分中,点击自定义
  5. CPU 平台下拉菜单中选择一个选项。
  6. 继续完成实例创建过程的剩余部分。

gcloud

要使用 gcloud 命令行工具通过最低要求 CPU 平台创建一个新的虚拟机,请提供新的 --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]"
   }
 }]

为已停止的虚拟机设置最低要求 CPU 平台

如果您首先停止实例,则可以为现有实例设置一个最低要求 CPU 平台。

停止实例后,请按照以下说明设置最低要求 CPU 平台,然后确保重启实例

GCP Console

  1. 转到“虚拟机实例”页面。

    转到“虚拟机实例”页面

  2. 如果出现提示,请选择您的项目并点击继续
  3. 选择您想要更改的已停止实例
  4. 点击修改以修改实例。
  5. 机器类型部分中点击自定义
  6. CPU 平台下拉菜单中选择一个选项。
  7. 保存更改。
  8. 重启实例

gcloud

使用后面带有 --min-cpu-platform 标志的 update 子命令。为平台指定一个易于记忆的名称,例如 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://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE]/setMinCpuPlatform

{
  "minCpuPlatform": "Intel Haswell"
}

在实例模板中指定最低要求 CPU 平台

如果使用了托管实例组,您可以为托管实例组中的虚拟机实例指定一个最低要求 CPU 平台。

要指定最低要求 CPU 平台,请创建一个实例模板,其中包含 minCpuPlatform 属性。

GCP Console

  1. 转到“实例模板”页面。

    转到“实例模板”页面

  2. 如果出现提示,请选择您的项目并点击继续
  3. 点击创建实例模板
  4. 机器类型部分中点击自定义
  5. 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 文档