ブリッジあたり1023ベスの障壁を避けるために、別々のデーモンを介して4000を超えるドッカーコンテナを作成しようとしています。しかし、ますます多くなります。
bash:フォーク:メモリを割り当てられません
エラーは1800程度です。システム全体のリソース(ulimit
)を増やしましたが、まだ多くのinodeとメモリが残っています。ドッカーバージョン1.8 RedHatバージョン7
答え1
bashは使用されず、vfork
bashは巨大です。
これにより、多くのフォークが大量の仮想メモリを消費します。
これは、ユーザーが制御できる問題ではなく、システムの物理メモリリソースによって引き起こされる問題である可能性が高いですulimit
。
Bourne Shellまたはksh93を試してみましたか?どちらもパフォーマンスを最適化するために使用されますvfork()
。
答え2
問題は、docker Zombieプロセスがカーネルプロセス容量を消費していることです。これはkernel.pid_maxを増やすことで解決できます。