본문 바로가기
backend/NestJS

[Node.js] PM2 알아보기

by BK0625 2023. 9. 26.
반응형

 

PM2는 Node.js 어플리케이션을 쉽게 관리할 수 있게 해주는 Process Manager이다. 

 

어플리케이션을 cluster mode로 실행시킨다거나, 메모리가 넘친다거나 오류로 인해 프로세스가 종료되는 등의 상황에서 PM2를 사용하면 간단한 설정으로 이러한 처리를 쉽게 해결 가능하다. 설치는 다음 명령어를 실행하면 된다.

 

npm install -g pm2@latest

 

Cluster mode

 

기본적으로 Node.js는 싱글스레드이다. 싱글스레드의 경우 구동 중인 서버의 CPU 개수와 상관 없이 1개만 사용할 수 있기 때문에 서버 전체의 성능을 온전히 사용하지 못한다. 만약 멀티스레드는 최대 서버 CPU 수 만큼 프로세스를 생성해 최대 성능을 끌어낼 수 있다.

 

 

# pm2 start app.js -i max

 

따라서 이러한 명령어 (app.js 대신 실행시키고자 하는 파일, max 대신 구체적인 개수를 설정할 수도 있음)를 통해 가능한 스레드의 숫자만큼 실행시킬 수 있다.

 

또 cluster의 특성을 통해 CI/CD 역시 구축 할 수 있다. 이건 추후 따로 포스팅하겠다.

 

 

명령어

pm2 start 명령어로 어플리케이션을 구동하게 되면 PM2를 끄지 않는 이상 프로세스가 예기치 못하게 종료 되었을 때 자동으로 재시작하게 된다.

 

 

그리고 pm2 list란 명령어로 현재 실행되고 있는 어플리케이션을 볼 수 있다.

 

 

그리고 모니터링을 하고 싶다면 pm2 monit이라는 명령어를 입력하면 되는데 이러면 각 프로세스의 메모리, CPU 사용률, 현재상태, 선택된 프로세스의 로그, 전체 프로세스의 Heap 사이즈 및 사용률, 어플리케이션 정보 등을 볼 수 있다.

 

다른 명령어를 확인하고 싶다면 pm2 examples 명령어를 실행하면 된다.

 

 

 

공부하면서 정리한 내용입니다. 모든 지적 감사히 받겠습니다:)

반응형