本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
運算資源記憶體管理
當 Amazon ECS容器代理程式將運算資源註冊到運算環境中時,代理程式必須判斷運算資源可以為您的任務預留多少記憶體。由於系統核心佔用的平台記憶體負荷和記憶體,此數字與 Amazon EC2執行個體安裝的記憶體數量不同。舉例而言,m4.large
執行個體安裝了 8 GiB 的記憶體。不過,這不一定會轉換為運算資源註冊時可用於任務的 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 之m4.large
執行個體的範例輸出AMI。
total used free shared buffers cached Mem:
8373026816
348180480 8024846336 90112 25534464 205418496 -/+ buffers/cache: 117227520 8255799296
此執行個體具有 8373026816 個位元組的總記憶體。這表示有 7985 MiB 可供任務使用。