Docker bash:フォーク:メモリを割り当てることができません。

Docker bash:フォーク:メモリを割り当てることができません。

ブリッジあたり1023ベスの障壁を避けるために、別々のデーモンを介して4000を超えるドッカーコンテナを作成しようとしています。しかし、ますます多くなります。

bash:フォーク:メモリを割り当てられません

エラーは1800程度です。システム全体のリソース(ulimit)を増やしましたが、まだ多くのinodeとメモリが残っています。ドッカーバージョン1.8 RedHatバージョン7

答え1

bashは使用されず、vforkbashは巨大です。

これにより、多くのフォークが大量の仮想メモリを消費します。

これは、ユーザーが制御できる問題ではなく、システムの物理メモリリソースによって引き起こされる問題である可能性が高いですulimit

Bourne Shellまたはksh93を試してみましたか?どちらもパフォーマンスを最適化するために使用されますvfork()

答え2

問題は、docker Zombieプロセスがカーネルプロセス容量を消費していることです。これはkernel.pid_maxを増やすことで解決できます。

関連情報