gpt4 book ai didi

amazon-web-services - AWS Batch 作业因内存需求 == 内存限制而终止?

转载 作者:行者123 更新时间:2023-12-04 17:20:41 29 4
gpt4 key购买 nike

在 AWS Batch 中,当我指定内存要求时32000MB,我的工作结束了,因为 (a) 自动选择的实际实例有 64GB 内存,并且 (b) ECS 似乎将 32000MB 视为要求 硬限制(“如果您的容器试图超过此处指定的内存,容器将被杀死”来自 https://docs.aws.amazon.com/batch/latest/userguide/job_definition_parameters.html )。因此,只要我的工作略高于 32GB,它就会被杀死,尽管我很高兴它能使用多达 64GB。

如何在不导致 AWS Batch 终止略高于该要求的作业的情况下正确指定最低内存要求? “内存”参数似乎既是最小值又是最大值,这对我来说似乎很奇怪。

我想我误解了什么。

最佳答案

resourceRequirements 中的内存要求属性始终是最大/上限。您可以在此处指定您的作业容器将使用的最大内存量。

引自 https://docs.aws.amazon.com/batch/latest/userguide/job_definition_parameters.html :

The hard limit (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed.

下限/最小界限没有多大意义,因为 AWS 需要将您的作业容器放到实际支持上限/限制的主机上,因为无法先验地告诉您的容器有多少实际内存将要使用。

或者换句话说:如果有“最低”要求,并且您指定了最低 = 1 MiB和最大值 = 16 GiB ,AWS Batch 应该如何处理这些信息?它不能将你的工作容器放到主机上,比如 512 MiB内存,因为您的作业容器在运行时可能会超过内存,因为您说最大值是 16 GiB (在这个例子中)。一旦达到当前主机的内存,AWS Batch 不会卡住正在运行的作业并将其迁移到另一台主机。

事实是 AWS Batch 决定将您的具体作业容器放到带有 64 GiB 的实例上可能是巧合因为32 GiB只是实例内存大小的边界 32 GiB <-> 64 GiB .如果您的工作要使用完整的 32 GiB那么就没有任何内存留给主机(没有交换)。

关于amazon-web-services - AWS Batch 作业因内存需求 == 内存限制而终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66357892/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com