Docker bash: 포크: 메모리를 할당할 수 없습니다.

Docker bash: 포크: 메모리를 할당할 수 없습니다.

브리지당 1023 veth 장벽을 피하기 위해 별도의 데몬을 통해 4000개 이상의 도커 컨테이너를 만들려고 합니다. 그런데 점점 더 많아지네요

bash: 포크: 메모리를 할당할 수 없습니다

오류는 1800 정도입니다. 시스템 전체 리소스( ulimit)를 늘렸지만 여전히 많은 inode와 메모리가 남아 있습니다. 도커 버전 1.8 RedHat 버전 7

답변1

bash는 사용되지 않으며 vforkbash는 엄청납니다.

이로 인해 많은 포크가 많은 양의 가상 메모리를 소비하게 됩니다.

이는 사용자가 제어할 수 있는 문제라기보다는 시스템의 실제 메모리 리소스로 인해 발생한 문제일 가능성이 높습니다 ulimit.

Bourne Shell이나 ksh93을 사용해 보셨나요? 둘 다 성능을 최적화하는 데 사용됩니다 vfork().

답변2

문제는 docker Zombie 프로세스가 커널 프로세스 용량을 소모하고 있다는 점인데, 이는 kernel.pid_max를 증가시켜 해결할 수 있습니다.

관련 정보