09. PM2를 이용한 node.js 프로세스 관리
PM2 (Process Manager 2)를 이용한 NodeJS 프로세스 관리
Node.js 프로세스의 실행, 재시작, 변경감지, 클러스트, 로그를 제공한다.
기본 명령어
- pm2 start < id | app_name | json | stdin > : 프로세스 시작
- pm2 stop < id | app_name | all | json | stdin > : 프로세스 멈춤(목록에는 남아 있음)
- pm2 delete < id | app_name | all | json | stdin > : 프로세스 목록에서 제거
- pm2 kill : pm2 데몬 자체를 죽일 경우
- pm2 restart < id | app_name > : 애플리케이션의 새로운 배포 등으로 재시작할 경우
분석, 모니터링
- pm2 list : 현재 실행 중인 프로세스 목록 확인
- pm2 monit : 현재 서버에서 실행 중인instance의 cpu 및 메모리 사용량 확인 가능
- pm2 desc(show) < id | app_name | all | json | stdin > : 프로세스 내용,에러 등 상세 정보
- pm2 logs < id | app_name> : 프로세스의 로그 확인
- pm2 flush : 로그 파일 지우기
- pm2 reload < id | app_name | all > : 해당 서비스를 종료하지 않고 리로드. 클러스터 모드일 때 다운타임 없이 서버를 재가동함.
PM2의 Cluster 기능
(참조한 곳) Performance에 대한 process 관리가 필요하게 되는 경우가 있는데, PM2 의 Cluster 기능은 이러한 경우 process를 Auto-scaring, Load-Balancing 해준다.
이때 instance를 0으로 두게 되면, pm2에서 자동으로 MAX 개수의 프로세스를 만들어서 서비스가 가능하도록 해준다.
사용 예
pm2 start lpushServer.js -i -0 (--name "example")
-
괄호 안의 내용, --name "example"은 option이다.
- ( -i ) 옵션은 클러스터 모드로 실행하겠다는 의미이다.
-
( 0 ) 사용할 CPU 개수 설정으로, 위에서 설명한 것처럼, 0으로 두면 사용가능한만큼 실행된다.