计算资源内存管理 - AWS Batch
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

计算资源内存管理

当 Amazon ECS 容器代理注册计算资源转换为计算环境,则代理必须确定计算资源可以预订您的作业。由于平台内存开销以及系统内核占用的内存,此数量不同于 Amazon EC2 实例的已安装内存量。例如,m4.large 实例具有 8GiB 的已安装内存。但是,这不总是表示确实有 8192 MiB 内存对可用作业计算资源注册。

如果您为作业,并且您的计算资源有 8192 MiB 或更高内存可用于满足此需求,则作业不能放置在您的计算环境。如果您使用托管计算环境,则 AWS Batch 必须启动更大的实例类型来满足该要求

默认的 AWS Batch 计算资源 AMI 还会为 Amazon ECS 容器代理以及其他关键系统进程预留 32 MiB 内存。此内存不能用于作业分配。有关更多信息,请参阅 预留系统内存

Amazon ECS 容器代理使用 DockerReadMemInfo()函数来查询可用于操作系统的总内存。Linux 提供了用来确定总内存的命令行实用程序。

例 - 确定 Linux 总内存

free 命令可返回操作系统识别的总内存。

$ free -b

输出示例m4.large实例运行亚马逊云服务器优化的亚马逊 Linux AMI。

total used free shared buffers cached Mem: 8373026816 348180480 8024846336 90112 25534464 205418496 -/+ buffers/cache: 117227520 8255799296

此实例具有 8373026816 字节的总内存,这表示有 7985MiB 内存可用于任务。

预留系统内存

如果你占用了一个计算资源与您的作业,那么您的作业将与关键系统进程争用内存,并且可能触发系统故障。Amazon ECS 容器代理提供了一个名为ECS_RESERVED_MEMORY,您可以使用该选 MiB 从分配给您的作业。这可以有效地为关键系统进程预留该内存。

默认的 AWS Batch 计算资源 AMI 会为 Amazon ECS 容器代理以及其他关键系统进程预留 32 MiB 内存。

查看计算资源内存

您可以查看计算资源注册到 Amazon ECS 控制台(或使用DescribeContainerInstancesAPI 操作)。如果您尝试通过提供您的作业尽可能多的内存对于特定实例类型,则可以观察可用于该计算资源,然后将您的作业那么多的内存。

查看计算资源memory

  1. 从打开 Amazon ECS 控制台https://console.aws.amazon.com/ecs/

  2. 选择托管您的计算资源以查看。计算环境的集群名称以该计算环境名称开头。

  3. 选择ECS 实例,然后选择计算资源来自 的容器实例列进行查看。

  4. 这些区域有:资源部分显示的已注册内存和可用内存计算资源

    这些区域有:已注册内存值是计算资源在亚马逊云服务器首次启动时注册,Available内存值是尚未分配给作业