はじめに
pm2はNodeアプリケーションのプロセスマネージャーで、
アプリケーションの起動、監視、自動再起動、ロードバランシングなどを簡単に行うことができるツールです。
特に、本番環境での運用で力を発揮します。
インストール
npmからグローバルにインストールします。
bash
npm install -g pm2
使い方
pm2の基本的な操作方法です。超簡単です。
アプリケーションの起動
bash
pm2 start app.js
/* プロセス名をつけて起動する場合 */
pm2 start app.js --name my-app
プロセス一覧の確認
bash
pm2 list
ログの表示
bash
pm2 logs
/* プロセス名を指定して閲覧する場合 */
pm2 logs my-app
プロセスの停止
bash
pm2 stop app.js
/* または */
pm2 stop my-app
プロセスの再起動
bash
pm2 restart app.js
/* または */
pm2 restart my-app
pm2自体の自動起動設定(例:Ubuntuの場合)
bash
pm2 startup
その後表示されるコマンドを実行し、
bash
pm2 save
で現在のプロセスリストを保存します。
これでsave
したプロセスはサーバー再起動時に自動的に起動されます。
クラスターモードでの起動(ロードバランサー)
クラスターモードとは、マルチコアCPUを活用してアプリケーションを複数プロセスで並列実行する仕組みです。
複数のプロセスはpm2
が自動的にロードバランシングします。
bash
/* max指定にすると使用できるCPUコア数分だけプロセスを起動します */
pm2 start app.js -i max
メモリ制限つきでの起動
メモリ制限をつけると、プロセスのメモリ使用量が指定以上となった場合に自動で再起動するようになります。
bash
pm2 start app.js --max-memory-restart 200M
プロセスの詳細表示
describe
を使用することで、プロセスの詳細情報を閲覧できます。
bash
pm2 describe my-app
/*
Describing process with id 0 - name my-app
┌───────────────────┬────────────────────────────┐
│ status │ online │
│ name │ my-app │
│ restarts │ 2 │
│ memory │ 75.2 MB │
│ cpu │ 0.1% │
│ script path │ /home/user/app/app.js │
│ exec mode │ cluster_mode │
│ instances │ 4 │
│ out log │ ~/.pm2/logs/my-app-out.log │
│ error log │ ~/.pm2/logs/my-app-err.log │
└───────────────────┴────────────────────────────┘
*/