自动选择虚拟机

如果您使用 workerMachineType 流水线选项将作业固定到特定机器类型,则可能会因资源耗尽而导致延迟或作业失败。自动虚拟机选择功能通过使用 Compute Engine 实例灵活性,从兼容且可用的机器类型池中自动选择工作器来解决此问题。这有助于确保 Dataflow 流水线可靠地获取容量,从而帮助您保持一致的性能并避免中断。

不支持的配置

如果您的流水线配置了以下任何一项,则自动虚拟机选择功能将处于关闭状态:

  • 已启用 Dataflow Prime。
  • 已设置 min_cpu_platform 流水线选项。
  • 使用了 Hyperdisk Balanced 磁盘或自定义预配性能(IOPS 和吞吐量)。使用这些配置启动的作业将失败。
  • 机密虚拟机已启用。
  • 需要加速器(GPU 或 TPU)。

此外,使用 Shuffle Appliance 或 Streaming Appliance 的作业不支持自动虚拟机选择功能。

启用自动虚拟机选择功能

在以下任一情形下,系统会自动启用自动虚拟机选择功能:

  • 如果您为不需要加速器(GPU 或 TPU)的流水线步骤设置了 min_ram 或 cpu_count 资源提示。如需了解如何将资源提示与基于模板的作业搭配使用,请参阅流水线资源提示。

自动虚拟机选择功能行为

您可以单独或组合配置 min_ram 和 cpu_count 资源提示。例如:

  1. 仅具有 cpu_count=2 的作业可能会预配具有 n4-standard-2(2 个 vCPU,8 GB RAM)、c4-standard-2(2 个 vCPU,7 GB RAM)和其他机器类型的实例。
  2. 同时具有 cpu_count=4 和 min_ram=16GB 的作业可能会预配具有 n4-standard-4(4 个 vCPU,16 GB RAM)、c4-highmem-4(4 个 vCPU,31 GB RAM)和其他机器类型的实例。

自动虚拟机选择功能会优化虚拟机选择,以提高资源获取能力。这意味着,在使用自动虚拟机选择功能来提高某些经过高度调优的作业的获取能力时,您可能会遇到性能下降的情况。我们建议您先在现有作业的子集上测试自动虚拟机选择功能,然后再逐步将其更广泛地部署。如需详细了解获取能力,请参阅 Batch 文档中的提高作业的资源获取能力。

Dataflow 会尝试先使用第 4 代机器家族(例如 N4 或 C4),以提供更高的效率。如果您的区域中没有第 4 代机器,配额不足,或者与您的配置不兼容,Dataflow 会自动回退到广泛可用的第 2 代机器家族(例如 N2 或 E2),以确保您的作业可以启动而不会出现容量延迟。

如果您在使用资源提示(适配)启用自动虚拟机选择功能时指定了磁盘类型(例如 pd-ssd 或 pd-standard),则 Dataflow 仅会预配兼容的第 2 代机器家族。为确保实现最大兼容性并允许使用较新的机器代系,请不要分配磁盘类型。

Compute Engine 预留

如果您将 Compute Engine 预留与自动虚拟机选择功能搭配使用,请注意以下事项:

  • 如果您已将预留配置为自动使用,则当自动虚拟机选择功能预配与预留匹配的机器类型时,可能会使用这些预留。
  • 自动虚拟机选择功能会使用可用的计算实例。因此,您无法指定该服务使用特定预留中的实例。

已知问题

使用自动虚拟机选择功能时,请注意以下已知问题:

意外的并行数量

如果您在使用自动虚拟机选择功能进行适配时发现工作器虚拟机的 CPU 利用率较低或并行数量意外,这可能是因为存在一个已知问题,即每个工作器的线程数不会自动设置为与所选机器类型的 vCPU 数量匹配。

如需解决此问题,您可以使用 numberOfWorkerHarnessThreads 流水线选项明确设置工作器 harness 线程数。此选项全局适用于流水线中的所有工作器池。