nodejs 환경에서 nuxt앱을 pm2를 사용하여 구동중인데
현재 구버전을 사용중이므로 local 방식의 신버전으로 업그레이드하라는 알림을 받았습니다. 기존에는 in-memory 방식의 5.2 버전을 사용중이었고 5.3은 local 방식으로 구동됩니다.
아래는 pm2 구버전과 신버전인
in-memory, local 방식의 주요 차이점과 관련하여 알아봅니다. 그리고 최신 버전 업데이트 방법도 같이 살펴보겠습니다.
pm2 두 가지 방식의 차이점은?
아마도 nodejs 환경에서 많은 분들이 pm2를 사용하고 계실 것이라 생각됩니다. 먼저 간략하게 pm2가 무엇인지 알아보면 다음과 같죠.
! pm2는 무엇일까?
PM2는 Node.js 애플리케이션의 프로세스 매니저로, 애플리케이션을 배경에서 실행하게 해주고,
자동 재시작,
로그 관리,
로드 밸런서 등 다양한 기능을 제공합니다.
(기본 설정 사용시 /logs/ 경로에서 pm2 프로세스 관련 로그 정보를 찾을 수 있습니다. 로그를 살펴보면 상태나 문제 원인 파악에 큰 도움이 되죠)여기서 PM2의 구동 방식이 `In-Memory` 방식과 `Local` 방식으로 구분됩니다. 이 둘의 차이점을 살펴보면 다음과 같죠.
* In-Memory 방식 : PM2가 실행 중인 모든 프로세스의 상태 정보를 메모리에 저장합니다. 이 방식은 빠르고 효율적인 데이터 접근을 가능하게 하지만, 시스템이 재시작될 경우 정보가 유실될 수 있는 단점이 있습니다.
* Local 방식 : 상태 정보를 디스크에 저장합니다. 이는 시스템이 재시작되더라도 정보가 유지되어 프로세스 상태가 보존되는 이점이 있습니다.
버전업을 통한 두 방식의 차이점은?
알림에 따르면 in-memory를 사용하는 기존 방식의 경우 memory leak, 즉
메모리 누수가 발생할 가능성이 있으며 이를 5.3 버전을 통해 local 방식으로 수정했다고 합니다. 이런 이유로 아직 구버전을 사용중이라먼 최신 버전으로 업데이트가 권장됩니다. 아래에서 최신 버전으로 변경하는 방법을 살펴봅니다.
PM2 5.3 버전과 업데이트 방법
최신 버전으로 업데이트해야 PM2 5.3 버전부터인 Local 방식의 사용이 가능합니다. 다음 명령어를 통해 최신 버전으로 업데이트 할 수 있습니다:
$ npm i pm2@latest -g
이 명령어는 전역으로 PM2를 최신 버전으로 업데이트합니다.
마치면서
여기까지 pm2 방식 차이와 업데이트 방법을 알아봤습니다. 간략하게 요약하자면 다음과 같습니다.
- pm2 In-Memory 방식은 메모리에, Local은 디스크에 저장
- Local 방식은 PM2 5.3 버전부터 가능하며 메모리 누수 이슈가 수정됨