

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 運算資源記憶體管理
<a name="memory-management"></a>

當 Amazon ECS 容器代理程式將運算資源註冊到運算環境時，代理程式必須判斷運算資源可以為您的任務預留多少記憶體。由於平台記憶體負荷和系統核心佔用的記憶體，此數字與 Amazon EC2 執行個體安裝的記憶體數量不同。舉例而言，`m4.large` 執行個體安裝了 8 GiB 的記憶體。不過，這不一定會轉譯為運算資源註冊時可用於任務的 8192 MiB 記憶體。

假設您為任務指定 8192 MiB，而且運算資源都沒有 8192 MiB 或更高的記憶體可滿足此需求。然後，任務無法放置在您的運算環境中。如果您使用的是受管運算環境， AWS Batch 必須啟動較大的執行個體類型以容納請求。

預設 AWS 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 AWS Batch 上的 記憶體和 vCPU 考量事項](memory-cpu-batch-eks.md)