Docker bash: fork: Невозможно выделить память

Docker bash: fork: Невозможно выделить память

Я пытаюсь создать 4000+ контейнеров Docker через отдельные демоны (чтобы избежать барьера в 1023 veth на мост). Но я получаю

bash: fork: Невозможно выделить память

ошибка около 1800. Я увеличил системные ресурсы ( ulimit) и осталось много инодов и памяти. Docker версии 1.8 RedHat версии 7

решение1

Bash не использует vfork, а bash огромен.

Это приводит к тому, что многие форки потребляют много виртуальной памяти.

Вероятнее всего, проблема вызвана реальными ресурсами памяти в системе, а не чем-то, что вы можете контролировать с помощью ulimit.

Пробовали использовать Bourne Shell или ksh93? Оба используют vfork()для оптимизации производительности.

решение2

Проблема была в процессе Docker Zombie, который поглощал емкость процесса ядра. Решить проблему удалось, увеличив kernel.pid_max.

Связанный контент