AWS Batch
ユーザーガイド

メモリ管理

Amazon ECS コンテナエージェントが を に登録するとき、 が に予約できるメモリの量をエージェントが決定する必要があります。プラットフォームのメモリオーバーヘッドとシステムカーネルが占めるメモリのため、この数値は、Amazon EC2 インスタンスとして公開されているインストール済みメモリ量とは異なります。例えば、m4.large インスタンスには 8 GiB のメモリがインストールされています。しかし、これは が登録されたときに、 用に 8192 MiB として厳密に変換されるとは限りません。

に 8192 MiB を指定し、使用可能なメモリが 8192 MiB 以上の がなくこの要件を満たせない場合、その は 。

詳細については、「システムメモリの予約」を参照してください。

Amazon ECS コンテナエージェントは、Docker ReadMemInfo() 関数を使用してオペレーティングシステムで使用可能な合計メモリのクエリを実行します。 と Windows の コマンドラインユーティリティを提供します。

例 -Linux 合計メモリを決定

free コマンドは、オペレーティングシステムによって認識される合計メモリを返します。

$ free -b

Amazon ECS-optimized 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 に変換されます。

システムメモリの予約

で 上のすべてのメモリを占有している場合、 がメモリが必要な重要なシステムプロセスと競合し、システム障害の引き金となる可能性があります。Amazon ECS コンテナエージェントは ECS_RESERVED_MEMORY という構成変数を提供します。この変数を使用して、 に割り当てられたプールから指定されただけのメモリ (MiB) を削減できます。これにより、重要なシステムプロセスのメモリを効果的に確保することができます。

メモリの表示

Amazon ECS コンソール (または DescribeContainerInstances API 操作) で、 が登録されているメモリ量を表示できます。特定のインスタンスタイプに対して、可能な限り多くのメモリを に割り当て、リソース使用率を最大化しようとしている場合は、その のために使用可能なメモリを観察してから、 に可能な限り多くのメモリを割り当ててください。

メモリを表示するには

  1. https://console.aws.amazon.com/ecs/ にある Amazon ECS コンソールを開きます。

  2. 表示する をホストするクラスタを選択します。

  3. [ECS Instances (ECS インスタンス)] を選択し、[Container Instance (コンテナインスタンス)] 列から 表示を選択します。

  4. [Resources (リソース)] セクションに、 用に登録され使用できるメモリが表示されます。

    [Registered (登録済み)] メモリの値は Amazon ECS の初回起動時に登録された時の のメモリの値です。[Available (使用可能)] メモリの値はまだ に割り当てられていないメモリの値です。