

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

# 计算资源内存管理
<a name="memory-management"></a>

当 Amazon ECS 容器代理将计算资源注册到计算环境中时，代理必须确定计算资源可为作业保留的内存量。由于平台内存开销和系统内核占用的内存，此数量不同于 Amazon EC2 实例的已安装内存量。例如，`m4.large` 实例具有 8GiB 的已安装内存。但是，当计算资源注册时，这不总是表示确实有 8192 MiB 内存可用于作业。

假设您为作业指定了 8192 MiB，并且您的计算资源中没有一个有 8192 MiB 或更大的可用内存来满足此要求。则作业就无法放置在您的计算环境中。如果使用托管计算环境，则 Amazon Batch 必须启动更大的实例类型来满足该要求。

原定设置的 Amazon Batch 计算资源 AMI 还会为 Amazon ECS 容器代理以及其他关键系统进程预留 32 MiB 内存。此内存不能用于作业分配。有关更多信息，请参阅 [预留系统内存](ecs-reserved-memory.md)。

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

**Example - 确定 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 可用于执行任务。

**Topics**
+ [预留系统内存](ecs-reserved-memory.md)
+ [教程：查看计算资源内存](viewing-memory.md)
+ [Amazon EKS 上 Amazon Batch 的内存和 vCPU 注意事项](memory-cpu-batch-eks.md)