amazon-web-services - AWS Batch 作业陷入可运行状态
问题描述
我正在尝试运行 100 节点 AWS Batch 作业,当我将计算环境设置为仅使用m4.xlarge
并且m5.xlarge
实例一切正常并且我的作业被拾取并运行时。
但是,当我开始在我的计算环境中包含其他实例类型时,作业会无限期地m5.2xlarge
停留在该状态中。runnable
我在这些更新中更改的唯一变量是计算环境中的实例类型。
当我在计算环境中包含其他实例类型时,我不确定是什么导致该作业无法执行。在计算环境参数的文档中,唯一的注释是:
创建计算环境时,您为计算环境选择的实例类型必须共享相同的架构。例如,您不能在同一计算环境中混合使用 x86 和 ARM 实例。
是JobDefinition
多节点:
- 节点 0
- vCPU:1
- 内存:15360 MiB
- 节点 1:
- vCPU:2
- 内存:15360 MiB
我的计算环境 max vCPUs 设置为10,000
,始终处于一个VALID
状态,并且始终ENABLED
。我的 EC2 vCPU 限制也是6,000
. CloudWatch 不提供日志,因为作业尚未开始,我不确定这里还有什么可以尝试的。我也没有使用optimal
实例类型的设置,因为我遇到了没有获得足够实例的问题。
解决方案
我刚刚解决了这个问题,问题在于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,提交作业并让它们在适当的计算环境中运行。
推荐阅读
- html - 如何为特定的锚标签或 div 设置纯 html 标题的样式?
- php - 使用 PDO 总和更新查询
- java - 当 Jmeter.bat 中的堆大小增加时无法打开 Jmeter?
- javascript - 错误:错误:Angular 1 中的 multidir 多指令资源争用
- xsd - VS2017中xsd.exe路径的环境变量是什么?
- apache-spark - 如何在 Spark2 中实际应用保存的 RF 模型并进行预测?
- sockets - 套接字连接自动断开
- c# - 优化 Linq 到 MySql
- angular - 单击浏览器后退角2后如何保留控制字段值
- influxdb - InfluxDB:计算整个数据库中的记录数