pm2 是一個管理 Node.js process 的工具,它可以讓我們用簡單的指令啟動 Node.js cluster 並最大化使用我們的 CPU,可以利用它來簡化很多node應用管理的繁瑣任務,如性能監控、自動重啟、負載均衡等,而且使用非常簡單。
使用npm安裝 npm install pm2 -g
pm2安裝好後,會自動創建下面目錄。$HOME/.pm2 將包含所有PM2相關文件
$HOME/.pm2/logs 將包含所有應用程序日誌
$HOME/.pm2/pids 將包含所有應用程序pids
$HOME/.pm2/pm2.log PM2記錄
$HOME/.pm2/pm2.pid PM2 pid
$HOME/.pm2/rpc.sock 遠程命令的套接字文件
$HOME/.pm2/pub.sock 可發布事件的套接字文件
$HOME/.pm2/conf.js PM2配置
pm2 start後面加上node.js 起始檔案pm2 start app.js
使用叢集(cluster)的方式來起始檔案pm2 start -i 4 --name server app.js
根據id, name刪除processpm2 delete { id or name }
根據id, name停止processpm2 stop { id or name }
根據id, name重新啟動processpm2 restart { id or name }
列出目前所有已啟動的process並顯示他們目前的狀態, 按下ctrl+c 可以離開monitorpm2 monit
請參考此篇文章:使用 pm2 啟動 Node.js cluster 以提升效能 截取作者實測結果報告:
可以發現開多個 process 處理的時候,消化 1000 個 request 的時間從 17.4 秒降到 9.9 秒,而每個 request 的回應時間也從 1668ms 降到 930ms,整體的速度大概快了兩倍(我的電腦是四核心,如果配備更好的話會快更多)