Etc

동시접속자 수 조정을 위한 파일디스크립터 변경방법

당리 2024. 5. 12. 21:41

저번주에 개발서버에서 동시접속 테스트를 진행하면서, 더이상 진행이 안될때가 있었다.

미디어서버 컨테이너의 파일디스크립터 문제라는걸 알게되고 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 ~

 

 

 

동시접속테스트가 잘 진행이 되고있다.