리오집사의 기억저장소

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으로 두면 사용가능한만큼 실행된다.

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band