Estou tentando criar mais de 4.000 contêineres docker por meio de demônios separados (para evitar a barreira de 1.023 veths por ponte). Mas estou conseguindo
bash: fork: Não é possível alocar memória
erro por volta de 1800. Aumentei os recursos de todo o sistema ( ulimit
) e ainda restam muitos inodes e memória. Docker versão 1.8 RedHat versão 7
Responder1
Bash não usa vfork
e bash é enorme.
Isso faz com que muitos forks consumam muita memória virtual.
Provavelmente, esse é um problema causado pelos recursos reais de memória do sistema e não por algo que você pode controlar por meio do ulimit
.
Você tentou usar o Bourne Shell ou o ksh93? Ambos usam vfork()
para otimizar o desempenho.
Responder2
O problema estava no processo docker zombie que estava consumindo a capacidade do processo do kernel e foi capaz de resolver o problema aumentando kernel.pid_max