pm2 도큐먼트 페이지 : PM2 - Quick Start
Node.js 프로그램 백그라운드 실행 및 프로세스 관리를 도와주는 패키지.
npm install pm2 --global
pm2 설치 명령어 (npm)
pm2 start app.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 명령어를 사용하여 조절할 수 있다.
참고하면 좋은 포스팅