排查资源可用性错误


本文档介绍了如何解决您在尝试请求新的 Compute Engine 资源或创建 Compute Engine 资源的预留时可能发生的资源可用性错误。由于 Compute Engine 资源(如 GPU 或 CPU)当前不可用,当您尝试在无法满足您的请求的可用区中请求资源时,就会发生资源错误。

资源错误仅适用于该地区中的新资源请求,而不会影响现有资源。资源错误与 Compute Engine 配额无关,仅适用于您在发送请求时在请求中指定的资源,不适用于该地区中的所有资源。

常见的错误消息

以下是您在请求新的 Compute Engine 资源或创建新的预留时可能会遇到的常见资源错误示例:

ZONE_RESOURCE_POOL_EXHAUSTED
ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS
The zone 'projects/PROJECT_ID/zones/ZONE' does not have enough resources available to fulfill the request.
Try a different zone, or try again later.
A VM_TYPE_AND_SIZE VM instance with RESOURCE_ATTACHMENT is currently unavailable in the ZONE zone.

Capacity changes frequently, so try your request in a different zone, with a different VM hardware
configuration, or at a later time. For more options, see troubleshooting documentation.
A VM_TYPE_AND_SIZE VM instance with RESOURCE_ATTACHMENT is currently unavailable in the ZONE zone, because of  REASON.

Consider trying your request in the ZONE zone(s), which currently has capacity to accommodate your request.

If you cannot move your VM to ZONE, review the REASON failure resolution instructions available in troubleshooting documentation, then try your request again.
If your workload can't accommodate the suggested resolution, try your request with a different VM hardware configuration or at a later time.

某些错误消息包含 reason 字段,用于提供有关 Compute Engine 无法通过您的请求获得的特定资源的信息。请查看本文档的资源错误原因和建议部分,详细了解发生资源错误的原因以及每个错误 reason 的解决策略。

解决资源错误

通常,解决资源错误的最佳方法是在不同可用区、不同时间或使用不同的虚拟机配置重试请求。如果您收到的错误消息包含 reason 字段,则可以在本文档的资源错误原因和建议部分中找到具体的修复建议,以帮助您解决错误。

如果您尝试使用 GPU 虚拟机创建可用区级托管式实例组 (MIG),请在 MIG 中创建调整大小请求。调整大小请求有助于在 MIG 中一次性获取高需求资源并在特定时间运行虚拟机。指定运行时长可以提高高需求资源的可获取性,并避免产生不必要的费用。

如果您尝试创建区域级 MIG,请尝试将 MIG 分布形状更改为 BALANCEDANYANY_SINGLE_ZONE。如需详细了解分布形状,请参阅区域级 MIG 目标分布形状

如果您尝试创建 Spot 虚拟机(或旧版抢占式虚拟机),请注意这些虚拟机是备用容量(计划外且易失),因此在需求高峰时段可能无法获取。因此,建议您仅对具有灵活时间、位置和虚拟机配置要求的工作负载使用 Spot 虚拟机。您可以遵循最佳实践来使您的工作负载更加灵活,从而帮助防止 Spot 虚拟机出现此错误。如果此错误持续存在,请改用标准虚拟机

防止资源错误的最佳方法是在您需要资源之前创建 Compute Engine 预留。预留有助于确保资源在您需要时可用。

资源错误原因和建议

下表提供了有关某些资源错误消息中存在的 reason 字段的信息,以及有关每个 reason 的解决策略的建议。

错误“reason 说明 建议
resource_availability 您请求的虚拟机的类型和大小目前在您请求该虚拟机的可用区中不可用。 尝试在其他可用区中请求该虚拟机。
cpu_availability 具有您请求的 CPU 数量的虚拟机目前在您请求该虚拟机的可用区中不可用。

请尝试下列操作之一:

  • 如果您请求的是单个虚拟机,请在其他可用区中请求该虚拟机。
  • 如果您请求多个虚拟机,请尝试以下一项或多项操作:

    • 在其他可用区中请求虚拟机。
    • 在较小的虚拟机之间拆分 vCPU 总数量。例如,如果您请求了 80 个具有 224 个 vCPU 的虚拟机,请尝试请求 160 个虚拟机,每个虚拟机具有 128 个 vCPU。
memory_availability 具有您请求的内存量的虚拟机目前在您请求该虚拟机的可用区中不可用。

请尝试下列操作之一:

  • 如果您请求的是单个虚拟机,请在其他可用区中请求该虚拟机。
  • 如果您请求多个虚拟机,请尝试以下一项或多项操作:

    • 在其他可用区中请求虚拟机。
    • 将内存请求拆分到多个虚拟机。例如,如果您请求了三个虚拟机,每个虚拟机具有 1.88 TB 内存,请将该请求拆分到多个虚拟机,这些虚拟机的总合并内存为 1.88 TB。
local_ssd_availability 具有您请求的本地 SSD 容量的虚拟机目前在您请求该虚拟机的可用区中不可用。

请尝试下列操作之一:

  • 如果您请求的是单个虚拟机,请在其他可用区中请求该虚拟机。
  • 如果您请求多个虚拟机,请尝试以下一项或多项操作:

    • 在其他可用区中请求虚拟机。
    • 如果您的工作负载允许,请请求可用区级或区域级 SSD 永久性磁盘,而不是本地 SSD。
    • 将本地 SSD 请求拆分到多个虚拟机。例如,如果您请求了一个具有 600 GB 的本地 SSD 的虚拟机,请将该请求拆分到多个虚拟机,这些虚拟机的本地 SSD 总合并容量为 600 GB。
gpu_availability 具有您请求的 GPU 的虚拟机目前在您请求该虚拟机的可用区中不可用。 尝试在其他可用区中请求该虚拟机。

如果您无法按照上述任何解决建议来解决错误,请尝试获取支持