PM2
デプロイ
自動起動
マルチプロセス
commands
$ pm2 status
$ pm2 listも同じ結果になる
$ pm2 start hoge
$ pm2 start -i <n>
cluster modeで起動
<n>にinstance数を指定する
-i 0は特殊で、マシンのコア数が指定される
$ pm2 restart hogehoge
$ pm2 stop hoge
$ pm2 delete hoge
$ pm2 logs
$ pm2 monit
イカツイ画面になってmonitoringできる
類似
参考
概要
statusの見方
table:a
id name mode ↺ status cpu memory
0 hogehoge fork 21 online 0% 61.1mb
↑restartした回数かな
PM2のconfig file
複数アプリの設定を書いたり、環境ごとの設定を書いたりできる
--max-memory-restart
mode
folk
起動したアプリ自体がリクエストを受け取る
cluster
pm2のマスターノードがリクエストを受け取り、それを起動中のインスタンスに割り振る
load balancingしてくれる
複数instanceを立ち上げている
落ちた時に自動的に再起動してくれる
ランタイム・パフォーマンスとリソース使用量に関するインサイトを得る
パフォーマンスを向上させるために設定を動的に変更する
クラスタリングを制御する
command optionでもできるが、設定ファイル化するのも簡単
ダウンタイム無しでdeployできる
普通にnpm startとかでexpressを起動するのと何が違うの? ref 基本的にはCPU1コアしか使えず、マルチコアに対応するのに手間がかかる
シングスプロセス
シングルスレッド
errorが起きてプロセスが落ちると停止してしまう
更新する際にダウンタイムが生じる
ログ出力や状態チェックなど自前で作る必要がある
その他、本番運用のための細かな手間がある
複数instanceを立てられるのは良いとして、
1個が死んだ時に、それを自動で再起動したりはしてくれるの?