为确保虚拟机资源在 Dataflow 作业需要时可用,您可以使用 Compute Engine 预留。预留为获取 Compute Engine 可用区级资源的容量提供了较高的保障。
如需将 Compute Engine 预留与 Dataflow 搭配使用,请执行以下步骤:
创建 Compute Engine 预留。它可以是单项目预留,也可以是共享预留。如需了解详情,请参阅以下文档:
预留可以包含 GPU 或 TPU 加速器。
提交 Dataflow 作业时,请传递以下服务选项之一,具体取决于您使用的 Beam SDK 版本:
- Beam 版本 < 2.29:
--experiments=skip_gce_quota_verification
- Beam 版本 >= 2.29:
--dataflow_service_options=automatically_use_created_reservation
- Beam 版本 < 2.29:
为了防止同一项目中的低优先级工作负载使用 Dataflow 进行预留争用,请在为这些工作负载创建虚拟机时将预留亲和性设置为 none
。如需了解详情,请参阅使用预留实例。
如需使用预留,Dataflow 工作器必须与预留配置匹配。您可能需要为作业设置工作器机器类型。如需了解详情,请参阅工作器。
限制
当 Dataflow 工作器使用预留时,需要遵循 Compute Engine 预留的所有限制。请参阅预留的工作原理。
Dataflow 依赖于 Compute Engine 中的默认用量订单。因此,存在以下限制:
- 同一项目或组织中未指定
--reservation
标志的其他工作负载可能会与 Dataflow 工作负载争用项目专用预留或共享预留。
- 同一项目或组织中未指定
Dataflow Prime 作业不会使用 Compute Engine 预留。
预留和加速器
Dataflow 支持使用加速器(GPU 或 TPU)的流水线的特定目标预留。此功能通常通过许可名单提供。如需了解如何将 Dataflow 加速器与特定预留搭配使用,请与您的客户支持团队联系。
价格
在 Dataflow 作业运行期间,Dataflow 会针对从自动使用的预留中获取的虚拟机向您收取费用。当 Dataflow 不使用这些虚拟机时,Compute Engine 会向您收取费用。
Compute Engine 价格模式
如果您的 Dataflow 用量包含来自具有 GPU 或 TPU 的特定目标预留的虚拟机,则这些预留的虚拟机的计算资源将按照 Compute Engine 价格计费。如果您的特定目标的预留附加到 Compute Engine 基于资源的承诺,那么您还可以根据使用情况获得适用的基于资源的承诺使用折扣 (CUD)。您还需要为 Dataflow 中消耗的计算资源支付管理附加费。如需了解更多价格详情,请参阅 Dataflow 价格。
Dataflow 价格模式
对于您与 Dataflow 搭配使用的任何其他类型的 Compute Engine 预留,您的使用情况将按照 Dataflow 价格模式进行结算。即使这些预留附加到基于资源的承诺,通过这些预留产生的 Dataflow 使用量也不符合基于资源的 CUD 的条件。此政策适用于以下 Compute Engine 预留:
- 没有 GPU 或 TPU 的特定目标预留
- 所有自动使用的预留
后续步骤
如需详细了解 Compute Engine 预留,请参阅 Compute Engine 可用区级资源的预留。