【问题标题】:aws batch job stuck in runnable with high memory requirement for jobdefinitionaws 批处理作业卡在可运行状态,作业定义的内存要求很高
【发布时间】:2018-07-26 23:28:33
【问题描述】:

我有一个批处理作业在内存要求

Batch troubleshooting 说这可能是因为资源不足:

作业卡在 RUNNABLE 状态

资源不足

如果您的作业定义指定更多 CPU 或 内存资源超过您的计算资源可以分配的,那么您的 工作永远不会被安置。例如,如果您的作业指定 4 GiB 内存,而您的计算资源少于此,那么工作 不能放在那些计算资源上。在这种情况下,您必须 减少作业定义中的指定内存或添加更大的内存 计算资源到您的环境。

但是,ComputeResorcesInstanceTypes 设置为 optimal,并且批处理似乎会根据内存要求的变化选择不同的实例类型(例如 r4.large)。所以我不明白为什么批处理无法选择具有足够内存的合适资源。

【问题讨论】:

    标签: amazon-web-services memory batch-processing


    【解决方案1】:

    可能发生的一件事是您的 AWS 账户可能会达到 EC2 实例限制。这将阻止批处理能够启动足够大以适合您的工作的实例。

    【讨论】:

      【解决方案2】:

      作业最终移出Runnable 并成功完成(运行的最大作业使用了 64GB)。所以看起来计算资源可以使用InstanceTypeoptimal 正确设置。

      【讨论】:

        【解决方案3】:

        您应该做的是壳到您的 EC2 实例并在其运行时运行 docker stats。这将显示实际的容器内存/cpu 利用率。

        例如,我发现在我的计算机上以 900mb 运行的 docker 进程在 ECS 中占用了 4gb(wtf?)。

        此外,如果您的 AWS Batch 计算环境设置为 managed by AWS,那么它将自动扩展实例以满足您的需求,直到您达到硬限制,例如 maximum vcpu。主机永远不会耗尽内存,因为容器本身已经预先分配了内存。容器将在主机之前耗尽内存。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-01-23
          • 1970-01-01
          • 1970-01-01
          • 2021-01-02
          • 1970-01-01
          • 2015-04-01
          • 1970-01-01
          • 2020-09-17
          相关资源
          最近更新 更多