AWS Batch で サブミットしたジョブが [RUNNABLE] のまま止まっている理由について教えてください
困っていた内容
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 のメモリに変換されるとは限りません。