本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
计算资源内存管理
当 Amazon ECS 容器代理将计算资源注册到计算环境中时,代理必须确定计算资源可为作业保留的内存量。由于平台内存开销和系统内核占用的内存,此数量不同于 Amazon EC2 实例的已安装内存量。例如,m4.large
实例具有 8GiB 的已安装内存。但是,当计算资源注册时,这不总是表示确实有 8192 MiB 内存可用于作业。
假设您为作业指定了 8192 MiB,并且您的计算资源中没有一个有 8192 MiB 或更大的可用内存来满足此要求。则作业就无法放置在您的计算环境中。如果使用托管计算环境,则 AWS Batch 必须启动更大的实例类型来满足该要求。
原定设置的 AWS Batch 计算资源 AMI 还会为 Amazon ECS 容器代理以及其他关键系统进程预留 32 MiB 内存。此内存不能用于作业分配。有关更多信息,请参阅 预留系统内存。
Amazon ECS 容器代理使用 Docker ReadMemInfo()
函数来查询可用于操作系统的总内存。Linux 提供了用来确定总内存的命令行实用程序。
例 - 确定 Linux 总内存
free 命令可返回操作系统识别的总内存。
$
free -b
以下是运行经 Amazon ECS 优化的 Amazon Linux AMI 的 m4.large
实例的示例输出。
total used free shared buffers cached Mem:
8373026816
348180480 8024846336 90112 25534464 205418496 -/+ buffers/cache: 117227520 8255799296
此实例的总内存为 8373026816 字节。这意味着有 7985 MiB 可用于执行任务。