Docker bash: fork: メモリを割り当てられません

Docker bash: fork: メモリを割り当てられません

私は別々のデーモンを介して4000以上のDockerコンテナを作成しようとしています(ブリッジあたり1023のvethの障壁を回避するため)。しかし、私は

bash: fork: メモリを割り当てられません

1800 あたりでエラーが発生します。システム全体のリソース ( ulimit) を増やしましたが、inode とメモリは十分に残っています。Docker バージョン 1.8 RedHat バージョン 7

答え1

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

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

これは、 を介して制御できるものよりも、システム上の実際のメモリ リソースによって発生する問題である可能性が最も高いですulimit

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

答え2

問題は、カーネルプロセス容量を消費していたdockerゾンビプロセスにあり、kernel.pid_maxを増やすことで問題を解決できました。

関連情報