티스토리 뷰

pm2 has a problem with openning a lot of file descriptors.



Nodejs의 Process Manager인 pm2로 실행 시 멈추는 현상이 있어  확인해 보니

File descriptor가 증식하는 현상이 있었다.


이정도면 버그수준이 아니라 바이러스 수준이다.

이 경우 ulimit 에 지정된 open file 갯수가 max가 되어 더이상 process가 동작하지 않는

상황이 발생하게 된다. ulimit 으로 open file 갯수를 늘려도 결국 max가 되어버리기 때문에

해결 방법은 pm2를 최신버전으로 업데이트 해주면 된다.

해당 문제 해결방법 참조 - https://github.com/Unitech/pm2/issues/603 

현재 0.12.9 버전의 pm2에선 이러한 현상이 없어졌기 때문에

기존의 pm2를 삭제하고 새로 설치를 하였다.

$ npm uninstall pm2 -g

$ npm install pm2 -g

이제 다시 실행한 뒤 모니터링 해보면 2개의 로그파일만 오픈되어 있음을 확인해 볼 수 있다.


댓글