pm2配置快速入門
在對express進行項目部署的時候,我們需要一個東西來守護進程,類似于java中的tomcat一樣,pm2就是一個node進程管理工具,它可以對node應用進行簡化管理,使用起來非常方便。這里只做基本的配置入門介紹。
1、安裝pm2
npm install pm2 -g
如果在windows服務器上,要注意添加pm2環(huán)境變量;具體操作可以找下相關(guān)資料,比較簡單,需要注意一點:path欄指向的是軟件啟動文件所在地址。
2、常用命令
這里有些常用命令先貼出來:
pm2 start app.js --name=fork -i 0 #啟動app.js
# --name=fork 命名為fork
# -i 0 根據(jù)CPU核數(shù)啟動進程個數(shù)
pm2 start app.js --watch # 當文件變化時自動重啟應用
pm2 start script.sh # 啟動 bash 腳本
pm2 list # 列表 PM2 啟動的所有的應用程序
pm2 monit # 顯示每個應用程序的CPU和內(nèi)存占用情況
pm2 show [app-name] # 顯示應用程序的所有信息
pm2 logs # 顯示所有應用程序的日志
pm2 stop all # 停止所有的應用程序
pm2 stop 0 # 停止 id為 0的指定應用程序
pm2 restart all # 重啟所有應用
pm2 reload all # 重啟 cluster mode下的所有應用
pm2 delete all # 關(guān)閉并刪除所有應用
pm2 delete 0 # 刪除指定應用 id 0
pm2 scale api 10 # 把名字叫api的應用擴展到10個實例pm2 reset [app-name] # 重置重啟數(shù)量
pm2 startup # 創(chuàng)建開機自啟動命令
pm2 save # 保存當前應用列表
pm2 resurrect # 重新加載保存的應用列表
#內(nèi)存使用超過上限自動重啟 可以加上--max-memory-restart參數(shù)
pm2 start app.js --max-memory-restart 20M
3、pm2啟動項目
pm2 start ./bin/www
4、管理內(nèi)存溢出問題
如果遇到內(nèi)存溢出問題,進程崩掉了,這時需要重啟進程。
有一種方法是在啟動時設(shè)置內(nèi)存閾值重啟,就是這樣:
pm2 start www --max-memory-restart 4096M
不過我在實際操作中發(fā)現(xiàn)此命令無效,我后來改成6G都沒法阻止重啟,服務一調(diào)用就直接js heap out of memory了。
最后,實在沒辦法,只有不用pm2,直接用npm啟動
這需要在package.json文件中的啟動節(jié)點進行最大內(nèi)存配置:
"scripts": {
"start": "node --max_old_space_size=4096 ./bin/www"
}
然后啟動就可以了
npm start
進程因為內(nèi)存溢出崩掉后也會自動重啟
評論
圖片
表情
