AWS Batch で サブミットしたジョブが [RUNNABLE] のまま止まっている理由について教えてください

2021.11.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

AWS Batchを利用して、ジョブをサブミットしたのですが、[RUNNABLE] 状態のままで進展がありません。

ジョブ定義の コンテナプロパティ で vCPU: 48メモリ: 96000(MB) を指定、
コンピューティング環境として、 インスタンスタイプ: c5.12xlarge ( vCPU:48、メモリ:96(GiB) ) を指定しました。

こちらの内容 [1] をチェックしましたが、設定した内容に問題はなさそうです。

また、Docker環境で docker runで実行した場合には正常に実行できていますので、 イメージ自体には問題がなさそうです。

どう対応すればいいの?

コンピューティング環境のメモリは OS が使用する分を考慮する必要があり、ジョブに割り当て可能な量は、インスタンスタイプのカタログスペックである 96 GiB よりも小さくなります。[2]

ジョブ定義に指定するメモリの値を、より小さな値とすることで問題が解消するか、確認してみてください。

参考資料

[1] AWS Batch ジョブが RUNNABLE ステータスで止まっている問題のトラブルシューティング

ステータスが [RUNNABLE] である AWS Batch ジョブが止まっているのはなぜですか?

[2] コンピューティングリソースメモリ管理 - AWS Batch

プラットフォームメモリのオーバーヘッドとシステムカーネルが占めるメモリのため、この数値は Amazon EC2 インスタンスとして公開されているインストール済みメモリ量とは異なります。例えば、m4.large インスタンスには 8 GiB のメモリがインストールされています。ただし、これは常に 8192 MiB のメモリに変換されるとは限りません。