【问题标题】:AWS Batch Job Stuck in Runnable StateAWS Batch 作业陷入可运行状态
【发布时间】:2020-09-17 14:27:51
【问题描述】:

我正在尝试运行 100 个节点的 AWS Batch 作业,当我将计算环境设置为仅使用 m4.xlargem5.xlarge 实例时,一切正常,并且我的作业已启动并运行。

但是,当我开始在我的计算环境中包含其他实例类型(例如 m5.2xlarge)时,作业会无限期地停留在 runnable 状态。我在这些更新中更改的唯一变量是计算环境中的实例类型。

当我在计算环境中包含其他实例类型时,我不确定是什么原因导致该作业无法执行。在Compute Environment Parameters 的文档中,唯一的注释是:

创建计算环境时,您为计算环境选择的实例类型必须共享相同的架构。例如,您不能在同一个计算环境中混合使用 x86 和 ARM 实例。

JobDefinition 是多节点:

  • 节点 0
    • vCPU:1
    • 内存:15360 MiB
  • 节点 1:
    • vCPU:2 个
    • 内存:15360 MiB

我的计算环境最大 vCPUs 设置为10,000,始终处于VALID 状态并且始终处于ENABLED。我的 EC2 vCPU 限制也是6,000。 CloudWatch 不提供日志,因为作业尚未开始,我不确定这里还有什么可以尝试的。我也没有使用 optimal 设置实例类型,因为我遇到了没有获得足够实例的问题。

【问题讨论】:

  • 另外,计算环境由AWS管理,用于扩展实例。

标签: amazon-web-services aws-batch


【解决方案1】:

我刚刚解决了这个问题,问题在于批处理中的BEST_FIT 策略。我提交的作业与实例类型不够接近,因此它们永远不会被拾取。

我通过修改作业定义以使用内存的8 vCPU and 30GB 来解决这个问题,并且作业从m5.2xlarge 实例开始。

我将看看使用BEST_FIT_PROGRESSIVE 策略是否可以解决此问题并报告回来,尽管我怀疑它会不会。

--

更新:我已与 AWS Support 交谈并获得了更多见解。 BEST_FIT_PROGRESSIVE 分配策略具有针对过度扩展的内置保护,因此客户不会意外启动数千个实例。虽然这有我所经历的副作用,导致工作无法开始。

支持工程师的建议是在计算环境中使用单一实例类型和BEST_FIT 分配策略。由于我的作业有不同的实例要求,我能够成功创建三个针对不同实例类型 (c5.large, c5.xlarge, m4.xlarge) 的单独 ComputeEnvironments,提交作业并让它们在适当的计算环境中运行。

【讨论】:

    猜你喜欢
    • 2021-01-28
    • 1970-01-01
    • 2020-11-20
    • 2019-03-02
    • 2022-01-04
    • 2018-07-26
    • 2023-03-30
    • 2023-02-04
    • 1970-01-01
    相关资源
    最近更新 更多