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


本页面介绍如何创建或更新虚拟机 (VM) 实例以使用最低要求 CPU 平台(而非默认平台)。

Google 数据中心提供不同世代的 CPU 处理器。每个 CPU 平台都支持高级矢量扩展(例如 AVX2 和 AVX-512)等增量功能。此外,一些与基本系统相关的功能(如时钟速度和存储器存取寻道时间)可能因 CPU 平台而异。

每个机器系列都与一个或多个 CPU 平台相关联。例如,N2 虚拟机可以在 Ice Lake CPU 或 Cascade Lake CPU 上运行。如果某个机器系列有多个 CPU 平台可用,则在使用该机器系列中的机器类型创建虚拟机时,您可以选择满足最低要求的 CPU 平台。机器系列、系列、区域和可用区的可用性决定了您可以为满足最低要求的 CPU 平台选择的选项。

如果您的工作负载需要一代特定处理器提供的性能提升,则指定满足最低要求的 CPU 平台会非常有用。不过,指定最低要求 CPU 平台可能会限制可在其中创建虚拟机的可用区。

准备工作

  • 设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。

    选择标签页以了解您打算如何使用本页面上的示例:

    控制台

    当您使用 Google Cloud 控制台访问 Google Cloud 服务和 API 时,无需设置身份验证。

    gcloud

    1. 安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

      gcloud init
    2. 设置默认区域和可用区

    REST

    如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

      安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

      gcloud init

所需的角色和权限

如需获得更改满足最低要求的 CPU 平台所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:

  • Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1)
  • 如需连接到能够以服务账号的身份运行的虚拟机:Service Account User (v1)(roles/iam.serviceAccountUser 角色)

如需详细了解如何授予角色,请参阅管理访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

何时选择最低要求 CPU 平台

您很可能无需选择最低要求 CPU 平台。每个 Compute Engine 可用区均为每个机器系列提供了一个默认的 CPU 平台。添加新服务器时,Google 偶尔会更改可用区的默认 CPU。如果您没有为虚拟机指定满足最低要求的 CPU 平台,则虚拟机会获得与其机器类型和可用区关联的默认 CPU 平台。

Google 建议您在以下情况下仅选择满足最低要求的 CPU 平台:

  • 当满足最低要求的 CPU 平台可为您的工作负载提供明显的性能提升,或者提供代码使用的 AVX2 或 AVX-512 等功能时。
  • 创建消耗预留资源的虚拟机时,您必须指定与预留资源相同的 CPU 平台。

为您的虚拟机选择最低要求 CPU 平台会引入一些限制,这些限制会影响您在某些 CPU 平台供应有限的可用区中启动虚拟机的能力。

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

Compute Engine 总是尽可能使用最低要求 CPU 平台。 如果 Google 更改了某个可用区中的 CPU 平台,则在您停止并重启虚拟机时,虚拟机可以继续在该可用区中可用的较新 CPU 平台上运行。

为虚拟机选择满足最低要求的 CPU 平台后,除非您停止虚拟机并更改 CPU 平台,否则虚拟机会使用此 CPU 平台。在实时迁移期间,虚拟机会保留所选的 CPU 平台。

限制

  • 每个区域和可用区都支持多个 CPU 平台,但区域或可用区可能无法提供所有 CPU 平台。
  • 您不能为使用单租户节点的虚拟机指定满足最低要求的 CPU 平台。
  • 您不能为预定义或自定义 E2 虚拟机选择满足最低要求的 CPU 平台。
  • 您无法为以下共享核心通用虚拟机选择最低要求 CPU 平台:
    • e2-micro
    • e2-small
    • e2-medium
    • f1-micro
    • g1-small

CPU 平台的可用性

CPU 平台的可用性因可用区而异,并且取决于每个可用区提供的硬件和机器系列。以下列表显示了支持的最低要求 CPU 平台和每个平台的有效语法:

  • Ampere Altra Arm 处理器:"Ampere Altra"
  • 第 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 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"
  • 第 4 代:AMD EPYC Genoa 处理器:"AMD Genoa"
  • 第 3 代:AMD EPYC Milan 处理器:"AMD Milan"
  • 第 2 代:AMD EPYC Rome 处理器:"AMD Rome"

按可用区查看可用的 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
    - AMD Rome
    - 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",
       "AMD Rome",
       "Intel Skylake"
      ],
      "supportsPzs": true
     }

对 CPU 平台的默认更改

有时,Google 会更改 CPU 平台或更新默认的 CPU 平台。随着可用区容量增加,Google 会在较新 CPU 平台可用时主动切换到该平台。它会将默认 CPU 平台更新为该可用区中可用的下一个最新 CPU 平台。

当可用区的默认 CPU 平台更改时,Google 会通知受影响的客户,并提供改用较新平台的详细时间表和具体说明。

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

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

创建虚拟机时,您需要选择机器系列和机器类型。机器系列可能会在多个 CPU 平台上提供。在这种情况下,您可以指定希望虚拟机使用的满足最低要求的 CPU 平台

控制台

  1. 在 Google Cloud 控制台中,转到创建实例页面。

    转到“创建实例”

  2. 机器配置部分中,展开高级配置部分。

  3. CPU 平台列表中,选择虚拟机 CPU 的平台。

  4. 继续完成虚拟机创建过程的剩余部分。

gcloud

  • 如需创建使用最低要求 CPU 平台的新虚拟机,请使用 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

      请参考可用可用区部分来确定每个可用区有哪些平台可供使用。

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:新虚拟机的名称
    • ZONE:要在其中创建虚拟机的可用区的名称,例如 europe-west1-b
    • MACHINE_TYPE:新虚拟机的机器类型
    • PLATFORM:您希望虚拟机使用的满足最低要求的 CPU 平台的易记名称,例如 Intel Ivy Bridge

      如需清除满足最低要求的 CPU 平台规范,请将 PLATFORM 替换为 AUTOMATIC

    • IMAGE_PROJECT:映像系列所属的映像项目

    • IMAGE_FAMILY:要用于创建虚拟机的映像所属的映像系列

为现有虚拟机设置满足最低要求的 CPU 平台

您可以为现有虚拟机设置满足最低要求的 CPU 平台。您必须先停止虚拟机,然后再设置满足最低要求的 CPU 平台。

控制台

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

    进入“虚拟机实例”

  2. 如果出现提示,请选择您的项目并点击继续

  3. 选择要更改的虚拟机。

  4. 点击停止

  5. 如需修改虚拟机,请点击修改

  6. 机器配置部分中,点击高级配置

  7. CPU 平台下拉菜单中,选择一个选项。

  8. 保存更改。

  9. 选择已更改的虚拟机。

  10. 点击启动/恢复

gcloud

  1. 如需停止虚拟机,请使用 gcloud compute instances stop 命令

    gcloud compute instances stop INSTANCE
    

    INSTANCE 替换为您要为其指定满足最低要求的 CPU 平台的虚拟机的名称。

  2. 如需指定最低要求 CPU 平台,请使用 gcloud compute instances update 命令,并提供 --min-cpu-platform 标志:

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

    PLATFORM 替换为您希望虚拟机使用的满足最低要求的 CPU 平台的易记名称,例如 Intel Cascade Lake

  3. 如需启动更新后的虚拟机,请使用 gcloud compute instances start 命令

    gcloud compute instances start INSTANCE
    

REST

  1. 如需停止虚拟机,请使用 instances.stop 方法构建一个 POST 请求:

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

    请替换以下内容:

    • PROJECT_ID:项目的 ID
    • ZONE:虚拟机所在的可用区
    • INSTANCE:您要为其指定满足最低要求的 CPU 平台的虚拟机的名称
  2. 如需设置满足最低要求的 CPU 平台,请构建对 setMinCpuPlatform 方法POST 请求,并在请求正文中设置 minCpuPlatform 属性:

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

    PLATFORM 替换为您希望虚拟机使用的满足最低要求的 CPU 平台的易记名称,例如 Intel Skylake

  3. 如需重启虚拟机,请使用 instances.start 方法构建 POST 请求:

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

移除满足最低要求的 CPU 平台设置

您可以将虚拟机更新为使用默认 CPU 平台,而不是使用满足最低要求的 CPU 平台。如果虚拟机正在运行,则必须先停止该虚拟机,然后再进行更改。

控制台

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

    进入“虚拟机实例”

  2. 如果出现提示,请选择您的项目并点击继续

  3. 选择要更改的虚拟机。

  4. 点击停止

  5. 如需修改虚拟机,请点击修改

  6. 机器配置部分中,点击高级配置

  7. CPU 平台选项更改为自动

  8. 选择已更改的虚拟机。

  9. 点击启动/恢复

gcloud

  1. 如需停止虚拟机,请使用 gcloud compute instances stop 命令

    gcloud compute instances stop INSTANCE
    

    INSTANCE 替换为您要更改的虚拟机的名称。

  2. 如需重置最低要求 CPU 平台,请使用 gcloud compute instances update 命令并将 --min-cpu-platform 标志设置为 AUTOMATIC

    gcloud compute instances update INSTANCE \
        --min-cpu-platform="AUTOMATIC"
    
  3. 如需启动更新后的虚拟机,请使用 gcloud compute instances start 命令

    gcloud compute instances start INSTANCE
    

REST

  1. 如需停止虚拟机,请使用 instances.stop 方法构建一个 POST 请求:

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

    请替换以下内容:

    • PROJECT_ID:项目的 ID
    • ZONE:虚拟机所在的可用区
    • INSTANCE:您要更改的虚拟机的名称
  2. 如需重置满足最低要求的 CPU 平台,请构建对 setMinCpuPlatform 方法的 POST 请求。在请求正文中,将 minCpuPlatform 属性值设置为 AUTOMATIC

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE/setMinCpuPlatform
    {
      "minCpuPlatform": AUTOMATIC
    }
    
  3. 如需启动更新后的虚拟机,请使用 gcloud compute instances start 命令

    gcloud compute instances start INSTANCE
    

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

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

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

控制台

  1. 转到实例模板页面。

    转到“实例模板”

  2. 如果出现提示,请选择您的项目并点击继续

  3. 点击创建实例模板

  4. 机器配置部分中,点击高级配置

  5. 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"
          }
        }
      ]
      }
    }

后续步骤