首页 > 解决方案 > AWS Batch 作业陷入可运行状态

问题描述

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

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

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

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

JobDefinition多节点:

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

标签: amazon-web-servicesaws-batch

解决方案


我刚刚解决了这个问题,问题在于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,提交作业并让它们在适当的计算环境中运行。


推荐阅读