별도의 악마를 통해 4000개 이상의 도커 컨테이너를 만들려고 합니다(브리지당 1023개의 veth 장벽을 피하기 위해). 하지만 나는 점점
bash: 포크: 메모리를 할당할 수 없습니다
1800쯤에 오류가 발생했습니다. 시스템 전체 리소스( )를 늘렸으며 ulimit
inode와 메모리가 많이 남아 있습니다. 도커 버전 1.8 RedHat 버전 7
답변1
Bash는 사용하지 않으며 vfork
bash는 엄청납니다.
이로 인해 많은 포크가 많은 가상 메모리를 소비하게 됩니다.
이는 ulimit
.
Bourne Shell이나 ksh93을 사용해 보셨나요? 둘 다 vfork()
성능을 최적화하는 데 사용됩니다 .
답변2
문제는 커널 프로세스 용량을 잡아먹는 docker 좀비 프로세스에서 발생했으며, kernel.pid_max를 늘려 문제를 해결할 수 있었습니다.