동시접속자 수 조정을 위한 파일디스크립터 변경방법
저번주에 개발서버에서 동시접속 테스트를 진행하면서, 더이상 진행이 안될때가 있었다.
미디어서버 컨테이너의 파일디스크립터 문제라는걸 알게되고 Openfiles를 확인을 해봤다.
띄어지고있는 컨테이너의 Openfiles를 확인해보면
* /proc/{pid}/limits에서 Openfiles를 확인 할 수 있다.
$ cat /proc/7723/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 31538 31538 processes
Max open files 1024 65536 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 31538 31538 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
Max open files의 Soft Limit이 1024 이었다.
서버에서 이 설정을 늘려주려면
/etc/security/limits.conf
에서 조정을 할 수 있다.
근데 개발서버에는 이미 파일디스크립터 제한이 Max값인 65536으로 설정이 돼있었다.
왜 미디어서버 컨테이너는 안먹는걸까???
오픈소스(미디어서버) 자체에서 1024로 제한을 주고있나??
열심히 구글링해도 안나왔다..
결국엔 동시접속테스트가 급한대로 도커명령어로 직접 조정해주기로했다.
docker run --ulimit nofile=65536:65536 ~
동시접속테스트가 잘 진행이 되고있다.