Docker Bash: Fork: Speicher kann nicht zugewiesen werden

Docker Bash: Fork: Speicher kann nicht zugewiesen werden

Ich versuche, über 4000 Docker-Container über separate Dämonen zu erstellen (um die Barriere von 1023 Veths pro Brücke zu umgehen). Aber ich bekomme

bash: fork: Speicher kann nicht zugewiesen werden

Fehler bei etwa 1800. Ich habe die systemweiten Ressourcen erhöht ( ulimit) und es sind noch genügend Inodes und Speicher übrig. Docker Version 1.8 RedHat Version 7

Antwort1

Bash wird nicht verwendet vforkund Bash ist riesig.

Dies führt dazu, dass viele Forks viel virtuellen Speicher verbrauchen.

Dies ist höchstwahrscheinlich ein Problem, das durch die tatsächlichen Speicherressourcen des Systems verursacht wird, und nicht durch etwas, das Sie darüber steuern können ulimit.

Haben Sie versucht, die Bourne Shell oder ksh93 zu verwenden? Beide dienen vfork()zur Leistungsoptimierung.

Antwort2

Das Problem lag beim Docker-Zombie-Prozess, der die Kernel-Prozesskapazität auffraß. Das Problem konnte durch Erhöhen von kernel.pid_max gelöst werden.

verwandte Informationen