抢占式虚拟机实例


本页面介绍抢占式虚拟机 (VM) 实例。如需了解如何创建抢占式实例,请参阅创建和使用抢占式虚拟机。要详细了解一般意义上的实例,请参阅虚拟机实例文档。

什么是抢占式实例?

与标准虚拟机的价格相比,抢占式虚拟机实例的价格要低得多(60-91% 的折扣)。但是,如果 Compute Engine 需要收回相应计算容量以分配给其他虚拟机,则可能会停止(抢占)这些实例。抢占式实例使用多余的 Compute Engine 容量,因此它们的可用性因使用情况而异。

如果您的应用属于容错型且可以承受可能的实例抢占,那么抢占式实例可以显著降低您的 Compute Engine 费用。例如,批处理作业可以在抢占式实例上运行。如果其中某些实例在处理期间停止,作业会减慢但不会完全停止。抢占式实例可完成您的批处理任务,而不会在现有实例上增加额外的工作负载,您也不再需要为额外的普通实例支付全价。

抢占式实例限制

抢占式实例的功能与普通实例类似,但具有以下限制:

  • 由于系统事件,Compute Engine 可能随时停止抢占式实例。Compute Engine 因系统事件停止抢占式实例的概率通常很低,但根据当前条件,每天和每个可用区都可能会有所不同。
  • Compute Engine 一定会在抢占式实例运行 24 小时后停止它们。某些操作会重置此 24 小时计数器。
  • 抢占式实例是有限的 Compute Engine 资源,因此它们可能不一定始终可用。
  • 抢占式实例无法实时迁移到常规虚拟机实例,也无法设置为在发生维护事件时自动重启
  • 由于上述限制,抢占式实例不在任何服务等级协议的涵盖范围内,并且已从 Compute Engine SLA 中排除。
  • Compute Engine 的 Google Cloud 免费层级赠金并不适用于抢占式实例。

抢占式虚拟机的抢占

本部分介绍 Compute Engine 如何抢占抢占式虚拟机,以及选择哪些虚拟机进行抢占。

抢占过程

Compute Engine 执行以下步骤来抢占实例:

  1. Compute Engine 以 ACPI G2 软关闭信号的形式向实例发送抢占通知。您可以使用关闭脚本来处理抢占通知,并在实例停止前完成清理操作。
  2. 如果实例在 30 秒后没有停止,Compute Engine 会向操作系统发送 ACPI G3 机械关闭信号。
  3. Compute Engine 将实例转换为 TERMINATED 状态。

您可以通过停止实例来模拟实例抢占。

已抢占的实例仍会出现在您的项目中,但是在它保持处于 TERMINATED 状态时,您不需要为实例时间付费。您可以从挂接到实例的任何永久性磁盘访问和恢复数据,但这些磁盘在您删除它们之前仍会产生存储费用。与普通实例一样,当您删除抢占式实例时,还将删除标记为自动删除的永久性磁盘。只要抢占容量,您可以根据需要重启抢占实例任意次数。重启抢占式实例会重置抢占式进程。

如果 Compute Engine 在抢占式实例创建后不到 1 分钟就停止它,则该虚拟机实例的使用不会产生费用。这可以确保除非抢占式实例有时间完成一定数量的工作,否则您不用为它们付费。但是,付费操作系统的费用仍然按正常计算。

抢占选择

如需了解有关降低抢占率的建议,请参阅我们的最佳做法。请注意,如果实例在开始运行后的第一分钟被抢占,则 Compute Engine 不会针对这些实例向您收费。

某些操作会将抢占式实例的 24 小时计数器清零。具体而言,如果停止启动实例,Compute Engine 会将该计数器清零,因为实例将转换为 TERMINATED 状态。但是,执行其他操作(例如重置实例或从虚拟机内运行 sudo reboot)时实例仍保持 RUNNING 状态,因此计数器不会清零。

价格

抢占式虚拟机使用 Spot 价格,与 Spot 虚拟机相同。如需详细了解抢占式虚拟机的价格,请参阅 Spot 虚拟机的价格

将抢占式虚拟机与 Compute Engine 结合使用

本部分提供有关如何将抢占式虚拟机与其他 Compute Engine 产品结合使用的显著信息。了解如何将抢占式虚拟机与代管式实例组、付费操作系统、本地 SSD 和 GPU 搭配使用。此外,了解抢占式虚拟机如何影响 Compute Engine 资源的配额。

托管实例组中的抢占式实例

您可以在托管实例组中创建抢占式实例。在创建或更新组之前,在实例模板中指定抢占选项。

仅当其他 Compute Engine 资源可用时,托管实例组才可创建或添加新的抢占式实例。如果这些资源有限,则代管式实例组将无法调整大小,也无法自动调节实例组中的抢占式实例的数量。

托管实例组始终尽力保持其目标大小或由该组的自动扩缩程序指定的大小。如果 Compute Engine 停止托管实例组中的抢占式实例,该组将反复尝试使用指定的实例模板重新创建该实例。如果必要的资源变得再次可用,则该组将重新创建实例并保持目标组大小。

抢占式实例上的付费操作系统

抢占式实例不会降低付费操作系统的费用,也不会改变您支付此类操作系统使用费的方式。如果 Compute Engine 停止运行付费操作系统的抢占式实例,那么系统会向您收取该操作系统的使用费,就像是您自己停止了该实例一样。最低使用费仍然适用,并且高级操作系统的账单仍然通过向上舍入到最接近的使用量增量来计算。

运行付费操作系统的抢占式实例上的机器类型始终按秒计费,并遵循虚拟机实例价格页面上列出的价格。

抢占式实例上的本地 SSD

如果您启动 Spot 虚拟机或具有本地 SSD 磁盘的抢占式虚拟机,则 Compute Engine 将按本地 SSD 使用量收取提供折扣的 spot 价格。挂接到 Spot 虚拟机或抢占式虚拟机的本地 SSD 磁盘的工作方式类似于普通的本地 SSD 磁盘,它们保留相同的数据持久性特性,并在生命周期内保持挂接状态虚拟机。

如果 Compute Engine 在虚拟机开始运行后一分钟内被抢占,则 Compute Engine 不会针对 Spot 虚拟机或抢占式虚拟机上的本地 SSD 磁盘使用费向您收费。

抢占式实例上的 GPU

您可以按较低的 GPU spot 价格将 GPU 添加到抢占式虚拟机实例。挂接到抢占式实例的 GPU 在工作方式上类似于普通 GPU,但只会在实例的生命周期内保留。搭载 GPU 的抢占式实例遵循与所有抢占式实例相同的抢占过程

考虑申请将专用 Preemptible GPU 配额用于抢占式实例上的 GPU。如需了解详情,请参阅抢占式虚拟机实例的配额

在维护事件发生时,挂接了 GPU 的抢占式实例会默认被抢占,并且无法自动重启。如果您要在实例被抢占后重新创建这些实例,请使用托管实例组。如果 vCPU、内存和 GPU 资源可用,则托管实例组将重新创建您的实例。

如果您希望在实例被抢占前收到警告,或者想要将实例配置为在维护事件发生后自动重启,请使用具有 GPU 的标准实例。对于具有 GPU 的标准实例,Google 会在抢占前提前一小时发出通知

如果 GPU 所属的实例在开始运行后的第一分钟被抢占,则 Compute Engine 不会针对这些 GPU 向您收费。

如需了解自动重启标准实例的步骤,请参阅更新实例对应的选项

如需了解如何创建挂接 GPU 的抢占式实例,请参阅创建挂接 GPU 的虚拟机

抢占式虚拟机实例的配额

与其他虚拟机一样,抢占式虚拟机需要可用的 CPU 配额。此外,如果您计划将抢占式虚拟机与本地 SSD 或 GPU 搭配使用,抢占式虚拟机还需要磁盘配额GPU 配额

如果您使用具有这些资源的抢占式虚拟机,并且未申请抢占式配额,则抢占式虚拟机会使用这些资源的标准配额。如果您计划使用抢占式虚拟机,请考虑为这些资源申请抢占式配额,以防止抢占式虚拟机消耗您的配额。

在 Compute Engine 授予您某个区域的抢占式配额后,该区域中的所有抢占式虚拟机(以及任何 Spot 虚拟机)都将计入该配额。该区域中的所有标准虚拟机仍会计入标准配额。在您没有抢占式配额的区域中,您可以使用标准配额来启动抢占式虚拟机。

抢占式配额不会显示在 gcloud CLI 或 Google Cloud 控制台配额页面中,除非 Compute Engine 已授予该配额。

了解如何申请抢占式配额

后续步骤

自行试用

如果您是 Google Cloud 新手,请创建一个账号来评估 Compute Engine 在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。

免费试用 Compute Engine