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 来解决该问题

相关内容