创建运行自定义机器类型的虚拟机实例

Compute Engine 提供了您在创建实例时可以使用的预定义机器类型。预定义的机器类型中的 vCPU 数量和内存量是预先设置的,并且按照价格页面中显示的固定价格计费。

如果预定义的机器类型不能满足您的需求,您可以创建一个使用自定义虚拟化硬件设置的实例。具体来说,您可以创建一个使用自定义 vCPU 数量和内存量的实例,以高效使用自定义机器类型。

自定义机器类型非常适合以下场景:

  • 不适合您可以使用的那些预定义机器类型的工作负载。
  • 需要更高的处理能力或更大的内存、但又不需要更高级别的机器类型所提供的全面升级的工作负载。

准备工作

规格

  • 自定义机器类型可以使用的 vCPU 数量上限是由将托管实例的地区决定的:

    • 有些支持 Skylake CPU 平台的地区(但并非所有地区)可支持配备了多达 96 个 vCPU 的自定义机器类型。
    • 有些支持 Broadwell、Haswell 或 Ivy Bridge CPU 平台的地区(但并非所有地区)可支持配备了多达 64 个 vCPU 的自定义机器类型。
    • 所有支持 Sandy Bridge CPU 平台的地区均可支持配备了多达 16 个 vCPU 的自定义机器类型。

    要查看适用于每个地区的平台,请阅读区域和地区表。

  • 实例的 vCPU 数量如果大于 1,则必须是偶数,如 2、4、6、8、10 等。

  • 为自定义机器类型的每个 vCPU 分配的内存大小必须介于 0.9 GB 到 6.5 GB 之间(含 0.9 GB 和 6.5 GB)。

  • 自定义机器类型的总内存必须是 256 MB 的倍数。例如,系统不接受 6.9 GB,但可以接受 6.75 GB 和 7 GB。

  • 运行自定义机器类型的实例和运行预定义机器类型的实例需要遵守相同的永久性磁盘容量限制。不过,自定义机器类型仍然只能使用 16 个单独的永久性磁盘卷。

如需查看有效和无效的机器类型的示例,请阅读创建实例部分。

价格

Google 根据实例使用的 vCPU 数量和内存时长收取自定义机器类型的使用费用。这与预定义机器类型的收费方式不同,因此我们建议您在创建自定义机器类型之前查看价格页面。

运行自定义机器类型的实例与其他实例一样,最低按 1 分钟收取起步费,但针对自定义机器类型的持续使用折扣的计算方式有所不同。如需了解详情,请参阅针对自定义机器类型的持续使用折扣

创建运行自定义机器类型的实例

创建实例前,请确保您已阅读并了解关于创建自定义机器类型的规格。规格汇总如下:

  • 只能创建配备了 1 个 vCPU 或偶数数量 vCPU 的机器类型。
  • 每个 vCPU 的内存必须介于 0.9 GB 到 6.5 GB 之间。
  • 实例的总内存必须是 256 MB 的倍数。
  • 允许使用的 vCPU 数量上限取决于地区。支持 Haswell 和 Broadwell 处理器的地区可以支持配备了多达 64 个 vCPU 的机器类型,而支持 Ivy Bridge 处理器的地区可以支持配备了多达 32 个 vCPU 的机器类型。采用 Sandy Bridge 处理器的地区可以支持配备了多达 16 个 vCPU 的机器类型。

无效机器类型的示例

  • 1 个 vCPU,总内存为 0.6 GB - 无效,因为总内存低于下限 (0.9 GB)。
  • 1 个 vCPU,总内存为 0.9 GB - 无效,因为总内存必须是 256 MB 的倍数。对于 1 个 vCPU,请至少使用 1024 MB 的内存。

有效机器类型的示例

  • 32 个 vCPU,总内存为 29 GB - 有效,因为 vCPU 的总数是偶数,而且总内存是 256 MB 的倍数。每个 vCPU 的内存量都是 0.9 GB,满足最低要求。
  • 1 个 vCPU,总内存为 1 GB - 有效,因为其中配备了一个 vCPU,满足对 vCPU 数量的最低要求,并且总内存是 256 MB 的倍数。每个 vCPU 的内存量都介于 0.9 GB 到 6.5 GB 的可接受范围之间。

以 GB 或 MB 表示内存

机器类型内存以千兆字节 (GB) 计算,其中 1GB 相当于 230 个字节。此计量单位又被称为吉比字节 (GiB)。将内存从 GB 转换成 MB 时,1 GB = 1024 MB。

在 API 中,您必须始终提供以 MB 为单位的内存。如果您使用 gcloud 命令行工具,则可能要提供以 GB 或 MB 为单位的实例总内存。但是,gcloud 工具要求内存值必须为整数,因此您不能提供浮点值。例如,要表示 5.75 GB,请将 5.75 GB 转换为 MB。在此例中,5.75 GB 可转换为 5888 MB。

创建实例

控制台

  1. 转到“创建实例”页面

    转到“创建实例”页面

  2. 机器类型下方,点击自定义
  3. 拖动滑块,为实例选择 vCPU 数量和内存量。在您更改 vCPU 数量和内存时,控制台会显示实例的预估费用。
  4. 保存您的更改,并继续执行创建过程的其余步骤。

gcloud

借助 gcloud 命令行工具,使用 instances create 子命令,然后添加 --custom-cpu--custom-memory 标志。指定总内存(以 GB 或 MB 为单位)。属性必须为整数,因此如果您想为内存指定 0.25 GB 的增量,请将该值转换为以 MB 为单位的数值。

例如,以下命令将创建配备了 4 个 vCPU 和总内存为 5 GB 的实例:

gcloud compute instances create example-instance --custom-cpu 4 --custom-memory 5

要指定增量值(如 5.25 GB 内存),请将该值转换为以 MB 为单位的数值,并以后跟 MB 后缀的方式提供该值:

gcloud compute instances create example-instance --custom-cpu 4 --custom-memory 5376MB

API

在 API 中,请像往常一样创建您的实例创建请求,但在指定 machineType 值时,请使用以下格式。将 NUMBER_OF_CPUSAMOUNT_OF_MEMORY 分别替换为您希望使用的 CPU 数量和内存量。提供以 MB 为单位的内存:

zones/[ZONE]/machineTypes/custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY

例如,以下网址将创建配备了 4 个 vCPU 和内存为 5 GB (5120 MB) 的实例:

zones/us-central1-f/machineTypes/custom-4-5120

您还可以创建运行自定义机器类型的抢占式实例,或者通过以上述格式指定自定义机器类型来创建运行自定义机器类型的实例组

向机器类型中添加扩展内存

默认情况下,自定义机器中每个 vCPU 的内存最高为 6.5 GB。不过,这样的内存可能满足不了您的工作负载。您可以支付额外的费用,为每个 vCPU 提供超出 6.5 GB 限制的更多内存。这称为扩展内存。

借助扩展内存,您可以向机器类型添加额外的内存,而不受每个 vCPU 的内存限制。无论使用何种 CPU 平台,您均可以向每个虚拟机添加高达 455 GB 的扩展内存。如果实例在支持配备了 96 个 vCPU 的机器类型的地区使用 Skylake CPU 平台,那么您可以向每个虚拟机实例添加高达 624 GB 的扩展内存。如果您需要更多内存,则必须使用一种兆内存机器类型,这样您创建的每个虚拟机实例可具有 1.4 TB 的总内存。

确定您是否需要扩展内存

某些工作负载需要每个 vCPU 都获得超出 6.5 GB 的内存才能获得最佳效果。这类工作负载包括工作负载基于内存分析、高性能数据库(包括诸如 MS SQL Server、MongoDB 和 MemcacheD/Redis 等关系型数据库和 NoSQL 数据库)。如果操作系统和软件堆栈的许可基于 vCPU,也会使选择最佳虚拟机内存配置要比使用预定义机器类型时困难得多。通过使用扩展内存,您可以根据需要添加尽可能多的内存,以使您的虚拟机实例获得最优性价比和最佳性能。

价格

使用自定义机器类型时,如果每个 vCPU 的内存量不超过 6.5 GB,则按照标准自定义机器类型价格收费。对于每个 vCPU 的内存量超过 6.5 GB 阀值的情况,Compute Engine 会按照扩展内存价格收取扩展内存的费用。请注意,扩展内存的价格不同于每个 vCPU 的内存低于 6.5 GB 阀值时的价格。

扩展内存的价格会因区域而异。使用扩展内存运行的实例与其他实例一样,最低按 1 分钟收取起步费。扩展内存也符合持续使用折扣的条件。如需了解详情,请参阅针对自定义机器类型的可持续使用折扣

如需了解价格信息,请参阅扩展内存价格

限制

  • 您只能向自定义机器类型添加扩展内存,而不能向预定义机器类型添加。
  • 您可以为每个 vCPU 添加的内存不受限制,但您可以向每个虚拟机实例添加的内存量存在上限。无论使用何种 CPU 平台,您均可以向每个虚拟机添加高达 455 GB 的扩展内存。如果实例在支持配备了 96 个 vCPU 的机器类型的地区使用 Skylake CPU 平台,那么您可以向每个虚拟机实例添加高达 624 GB 的扩展内存。
  • 您必须以 256 MB 为增量指定内存。
  • 扩展内存并不符合承诺使用折扣的条件。

在创建实例期间添加扩展内存

要创建使用扩展内存的虚拟机实例,请按照以下说明进行操作。

控制台

  1. 转到 Google Cloud Platform Console 中的“创建实例”页面。

    转到“创建实例”页面

  2. 机器类型下方,点击自定义
  3. 选择您希望虚拟机实例配备的 vCPU 数量。
  4. 选择您希望拥有的内存量。要添加扩展内存,请选中扩展内存选项。可选内存的范围将扩大。
  5. 继续执行实例创建过程。

gcloud

借助 gcloud 工具,使用 instances create 子命令,然后添加用于启动扩展内存的 --custom-extensions 标志。接下来,使用 --custom-memory 参数指定您希望获得的总内存。

例如,以下命令将创建一个配备了 2 个 vCPU、内存为 15 GB(包括 2 GB 扩展内存)的实例:

gcloud compute instances create example-instance --custom-cpu 2 --custom-memory 15 --custom-extensions

API

API 中,请像往常一样构建您的实例创建请求,但在指定 machineType 值时,请使用以下格式:

zones/[ZONE]/machineTypes/custom-[NUMBER_OF_CPUS]-[AMOUNT_OF_MEMORY]-ext

其中:

  • [NUMBER_OF_CPUS] 是 vCPU 数量
  • [AMOUNT_OF_MEMORY] 是您希望获得的内存量。提供以 MB 为单位的内存量。

例如,以下命令指定的机器类型配备 2 个 vCPU 并且内存为 15 GB:

zones/[ZONE]/machineTypes/custom-2-15360-ext

向现有的虚拟机实例添加扩展内存

要向现有实例添加更多内存,您必须先停止实例。实例停止后,请按照以下说明向虚拟机添加更多内存。

控制台

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

    转到“虚拟机实例”页面

  2. 从实例列表中选择您希望修改的已停止实例。
  3. 点击页面顶部的修改
  4. 机器类型下方,点击自定义
  5. 选择您希望配备的 vCPU 数量。
  6. 选择您希望拥有的内存量。要添加扩展内存,请选中扩展内存选项。可选内存的范围将扩大。
  7. 保存更改。

gcloud

借助 gcloud 命令行工具,使用 instances set-machine-type 子命令,然后添加与现有 --custom-memory 参数匹配的 --custom-extensions 标志。

例如,要向名为 example-instance 的实例(当前位于 us-central1-b 地区且配备了 2 个 vCPU 和 13GB 内存)另外添加 2GB 的内存,请使用以下命令:

gcloud compute instances set-machine-type example-instance \
   --zone us-central1-b --custom-cpu 2 \
   --custom-memory 15 --custom-extensions

API

API 中,向 setMachineType 方法发出 POST 请求,并在请求正文中指定所需的机器类型。请在指定新的机器类型时,使用以下格式:

zones/[ZONE]/machineTypes/custom-[NUMBER_OF_CPUS]-[AMOUNT_OF_MEMORY]-ext

其中:

  • [NUMBER_OF_CPUS] 是 vCPU 数量。
  • [AMOUNT_OF_MEMORY] 是您希望获得的内存量。提供以 MB 为单位的内存量。

例如,以下命令使用的机器类型配备 2 个 vCPU 和 15GB 内存:

zones/[ZONE]/machineTypes/custom-2-15360-ext

例如:

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/setMachineType

{
    machineType: "zones/us-central1-f/machineTypes/custom-2-15360-ext"
}
此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Compute Engine 文档