PM2 - Node.js Process manager

sprinkler dev·2021년 11월 22일
0

pm2 도큐먼트 페이지 : PM2 - Quick Start

pm2


Node.js 프로그램 백그라운드 실행 및 프로세스 관리를 도와주는 패키지.

설치 및 사용법


npm install pm2 --global

pm2 설치 명령어 (npm)

pm2 start app.js

프로세스 시작 명령어

  • 스크립트를 직접 지정해서 시작하는 방법 외에도 별도로 콘피그 파일(.js)을 작성해 여러 옵션을 지정할 수 있음
pm2 kill [optional : process_name]

프로세스 종료 명령어

  • 프로세스 지정하지 않으면 실행 중인 모든 프로세스 종료
pm2 log [optional : process_name]

로그 확인 명령어

  • 프로세스 지정하지 않으면 모든 프로세스의 로그 출력

클러스터 모드


pm2의 클러스터 모드를 사용하면, 기본적으로 싱글 스레드에서 실행되는 Node.js 프로세스를 멀티 스레드로 실행할 수 있다.

pm2의 클러스터 모드는 내부적으로 Node.js ‘cluster’ 모듈을 사용해서 구현되어있다.

Cluster 모듈 레퍼런스 : Cluster | Node.js v16.13.0 Documentation

// pm2.config.js

module.exports = {
  apps: [
    {
      name: "server.account",
      script: "./dist/app.js",
      instances: 0,
      exec_mode: "cluster",
      
      ...
      
    }
  ]
};

위 예시처럼 exec_mode: “cluster”로 설정하면 클러스터 모드로 프로세스를 실행하게 된다.
‘instances’ 옵션을 설정하여 실행할 프로세스의 수를 정할 수 있고 0으로 설정하면 CPU 코어 수 만큼 (하이퍼스레딩을 지원한다면 코어 수의 2배) 프로세스를 실행한다.

pm2 start app.js -i max

혹은 위 명령어로 프로세스를 실행하는 방법도 있다.
-i 옵션 뒤에 실행할 프로세스 수를 설정하여 사용한다.

pm2 scale app [원하는 프로세스 개수]

실행 중인 앱의 프로세스 수를 조절할 때는 scale 명령어를 사용하여 조절할 수 있다.

참고하면 좋은 포스팅

PM2를 활용한 Node.js 무중단 서비스하기 - LINE ENGINEERING

profile
2년차 백엔드 개발자

0개의 댓글