提高作业的资源可获取性

本文档介绍了资源可获取性,并建议在创建和运行 Batch 作业时如何提高可获取性。

什么是可获得性?

可获取性是指资源可用于运行工作负载的概率。如果资源不可用,您的工作负载会因资源可用性错误而失败。可获得性与可靠性相关,但又有所不同,可靠性是指工作负载可供用户使用的概率。(有空可能表示两者之一或两者兼有。)

可获得性与可靠性之间的关系很复杂。工作负载需要获取资源才能保持可靠性。不过,虽然在位置、时间和硬件方面具有灵活性可以提高可获得性,但只有当灵活性满足工作负载的要求时,可靠性才会提高。例如,请注意以下复杂性:

  • 由于需求较高,高性能机器类型可能不太容易获得,但如果工作负载的性能不足,可靠性就会降低。
  • 位置灵活性可提高可获得性,但密集分配的机器可提高网络性能。
  • 时间灵活性可提高可获得性,但等待时间过长可能会导致不必要的延迟。

因此,更高的可获得性并不一定更好。最佳可得性水平因您的优先事项和要求而异。例如,您可能希望降低可获得性,以优先降低费用。即使您想优先考虑可靠性,也可能需要在更高的可获得性带来的好处与更低的性能或更长的延迟时间带来的风险之间取得平衡。

有关提高职位可获得性的建议

请查看以下部分,以提高批处理作业的可获取性:

适用于所有使用选项的建议

  • 通过分离工作负载,最大限度地减少对大型高性能机器类型的需求。例如,首先使用相关作业将计算密集型操作与低需求操作分开。然后,通过最大限度地提高并行处理能力并尽可能减少紧密耦合的任务,尽可能减少每个作业所需的最低计算资源。

    详细了解相关作业以及计算资源和并行性

  • 尽可能增加作业的 Compute Engine 资源允许的位置数量。此属性默认为 true;除非您为作业指定 allowedLocations[] 字段,否则作业的 Compute Engine 资源可以在作业位置的每个可用区中运行。

    详细了解位置

  • 考虑在等待更好的可获得性之前使用快速失败策略。为尽量避免延迟,请考虑采用快速失败策略,例如:

    • 虽然您可以尝试在其他时间发出请求,以排查资源可用性错误,但通常先尝试不同的位置或硬件会更快。
    • 如果您愿意使用多种消耗选项,通常可以先尝试无延迟的消耗选项:按需预留、按需实例和 Spot 虚拟机,这样可以更快地获得容量。
    • 对于您计划重复执行的新工作负载,您可能更希望暂时使用更容易获得的选项来加快初始测试和问题排查。

根据使用选项提供的建议

您选择的消费选项是作业可获得性的主要因素。本部分简要总结了每种使用选项,并建议了如何针对每种使用选项优化可获得性。

以下消费选项按可获得性从高到低列出:

  • 对于可获取性要求较高工作负载,请使用预留 与其他所有消费方案相比,预留为获取容量提供了更高的保障。如需使用预留容量,请先创建或确定可使用的现有预留。然后,配置实例以使用该预留容量。与其他消费选项不同,预留实例即使在未被使用时也会产生费用,直到您将其删除为止,这是因为预留实例可提供容量保证。在考虑可获得性时,请从以下类型的预订中进行选择:

    • 如需使用预留容量,请使用明确定向预留。通过这些预留,您可以轻松验证预留容量是否可用以及是否可供工作负载使用。如果预留容量不可用且不兼容,您的工作负载会失败并返回错误。明确针对的预留包括 RESERVATION_BOUND 预配模型的所有预留,以及 STANDARD 预配模型的某些预留。

      了解如何创建使用预留的作业。

    • 对于可选的预留容量,请使用自动使用的预留并利用实例灵活性(预览版)。 这些预留选项可很好地保证容量可用性,但前提是您的工作负载可使用的预留容量可用。对于自动使用的预留,您必须指定 STANDARD 预配模型,并手动验证预留容量是否可用以及是否与工作负载的实例配置相匹配。如果预留容量不可用或不匹配,您的工作负载会尝试改用按需容量。不过,与专门针对的预留不同,您可以将实例灵活性与自动使用的预留搭配使用,让工作负载尝试使用多个自动使用的预留。

      了解如何创建使用预留实例灵活性的作业(预览版)。

  • 对于可得性要求中等的工作负载,请使用具有实例灵活性的按需容量(预览版)或灵活启动虚拟机。您可以从以下选项中进行选择:

    • 除非您的机器类型属于 A3 机器系列或不受支持,否则请考虑使用具有实例灵活性的按需容量(预览版)。 按需使用选项需要 STANDARD(默认)预配模型。除非您明确阻止预留使用,否则您的工作负载默认也会尝试使用自动使用的预留。值得注意的是,我们不建议为 A3 机器系列使用按需付费

      了解如何创建使用标准配置模型实例灵活性预览版)的作业。

    • 否则,或者如果按需容量反复不可用,请考虑使用灵活启动虚拟机如需使用灵活启动虚拟机使用选项,请指定 FLEX_START 预配模型。灵活启动虚拟机要求您的工作负载能够承受等待时间和有限的运行时间,但同时也会通过动态工作负载调度器价格提供折扣。

      了解如何创建使用灵活启动虚拟机的作业。

  • 对于可获取性要求较低的工作负载,请使用具有多种可获取性功能的 Spot 虚拟机如需使用 Spot 虚拟机消耗选项,请指定 SPOT 配置模型。Spot 虚拟机可能并非始终可用,并且随时可能被抢占,因此仅建议用于容错型工作负载,但可能会通过 Spot 虚拟机价格提供最大折扣。

    我们通常建议您在创建 Spot 虚拟机之前查看其可用性,并验证您的工作负载是否可以处理抢占。然后,为了提高批量作业中 Spot 虚拟机的可获取性,我们建议您使用实例灵活性(同一等级中的多种机器类型)(预览版),并使用自动重试在抢占后自动尝试重新创建 Spot 虚拟机。

    如需了解如何查看 Spot 虚拟机的可用性以及管理 Spot 虚拟机的抢占,请参阅 Compute Engine 文档。然后,了解如何创建使用 Spot 虚拟机配置模型实例灵活性预览版)和自动重试抢占的作业。

后续步骤