【问题标题】:AWS Batch jobs stuck in PENDING when they `dependsOn`AWS Batch 作业在“dependsOn”时停留在 PENDING
【发布时间】:2018-08-15 09:20:18
【问题描述】:

我在链接 AWS Batch 作业时遇到问题。

  • 有 3 个计算环境CE_ACE_BCE_C),每个环境关联一个作业队列JQ_A , JQ_B, JQ_C)。

  • 有 6 个工作定义JD_1JD_2、...、JD_6)。

  • <jqce>-<jd>-<name> 成为在作业队列(或计算环境)<jqce> 和作业定义<jd> 上启动的作业。示例:A-1-aC-6-z

  • 我想依次执行大约 20 个作业(使用不同的环境变量启动):A-1-aA-1-bB-2-cA-3-dA-3-eA-3-f、...

  • 对于每个作业,我指定对先前作业的依赖关系: params.dependsOn = [{ "jobId": "xxxxx-xxxx-xxxx-xxxxxx"}]Batch.submitJob(params)

  • 前两个作业A-1-aA-1-b 在等待资源分配几分钟后成功执行。

  • 在等待计算环境CE_B 启动几分钟后,第三个作业B-2-c 也成功执行。

  • 同时,计算环境CE_A 已关闭,因为没有提供任何作业。

问题来了:

  • 我预计此时CE_B 会下降而CE_A 会上升。 CE_A 没有上升。

  • A-3-d 从未被执行,16 小时后它仍处于PENDING 状态。

    • dependsOn 没问题,它的依赖关系早就结束了。
    • 没有dependsOn,批处理运行正常,使用相同的环境变量和配置。

问题

  • 您是否遇到过AWS BatchdependsOn 的类似问题?
  • 是否可以链接来自不同作业队列的批次?
  • 是否可以链接来自不同计算环境的批次?
  • params.dependsOn = [{ "jobId": "xxx-xxx-xxx-xxx" }] 在您看来还可以吗?看来我不必设置type属性see array jobs

【问题讨论】:

    标签: amazon-web-services aws-batch


    【解决方案1】:

    你觉得 params.dependsOn = [{ "jobId": "xxx-xxx-xxx-xxx" }] 没问题吗?看来我不必设置类型属性见数组作业;

    是的,类型仅在定义为数组作业时才需要。而您提供的 JobID 是您提交特定作业时返回的内容?

    是否可以链接来自不同作业队列的批次? 是否可以链接来自不同计算环境的批次? 你应该可以做到,但我从来没有这样做过。

    同时,计算环境 CE_A 已关闭,因为没有提供任何作业。

    所以 CE_A 已经在运行并且已经运行 A-1-a、A-1-b 了吗?

    我记得 AWS 每 10 分钟检查一次某些状态,人们遇到过系统似乎卡住的情况。

    您可以将 CE_A 设置为始终拥有至少 1 个 CPU,这样它就不会消失或变得难以获得某个版本。

    您可以仅出于测试目的吗?更短的操作,减少队列等

    考虑查看有关 Batch 的 AWS 论坛。那里没有太多的活动,但值得多看一眼。

    【讨论】:

    • 谢谢。 • JobId 是上一个提交的作业提供的。 • 是的,CE_A 已启动并执行A1aA1b,然后CE_B 执行下一个作业,并且应该在CE_A 上运行的第四个作业从未从PENDING 移动到RUNNABLE (因此没有CE_A 再次启动) • 保持至少 1 个 vcpus 的存活是不可接受的解决方案,这些批次应该在罕见的随机日期运行。
    • 在相同的作业队列(和相同的计算环境)上运行相同的作业可以正常工作。
    猜你喜欢
    • 2017-09-28
    • 2021-01-28
    • 1970-01-01
    • 2018-06-17
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    • 2018-09-20
    • 2022-01-04
    相关资源
    最近更新 更多