PM2
-
PM2的核心價值(npm run prd 即可)
- 進程守護, 系統(tǒng)崩潰自動重啟(一直重啟)
- 啟用多進程, 充分利用CPU和內(nèi)存
- 自帶日志記錄功能(之前的console.log 和 console.error會自動記錄在配置的文件內(nèi))
-
PM2介紹
下載安裝
npm i pm2 -g下載
pm2 --version查看版本-
基本使用
- 配置啟動命令:
"prd": "cross-env NODE_ENV=dev pm2 start ./app.js" - 啟動完, 會告知pm2配置, 且交還控制臺(nodemon會在前臺運行)
- 配置啟動命令:
常用命令
pm2 start ...啟動項目
pm2 list在控制臺看到pm的配置列表
pm2 restart <AppName>/<id>根據(jù)appname/id(pm的配置列表有), 重啟某個服務(wù)
pm2 stop <AppName>/<id>停止
pm2 delete <AppName>/<id>刪除
pm2 info <AppName>/<id>服務(wù)信息
pm2 log <AppName>/<id>查看進程日志
pm2 monit <AppName>/<id>查看進程cpu和進程的信息-
常用配置
-
新建pm2的配置文件(包括進程數(shù)量, 日志文件目錄等)
{ "apps": { "name": "pm2-server", // 啟動時候, 進程名稱 "script": "app.js", // 啟動目錄文件 "watch": true, // 監(jiān)聽文件變化, 自動啟動 "ignore_watch": [ "node_modules", // 忽略node_modules "logs" // 忽略logs文件變化 ], "instances": 4, // 多進程 "error_file": "logs/err.log", // 錯誤日志寫入 "out_file": "logs/out.log", // 輸出日志 "log_date_formate": "YYYY-MM-DD HH:mm:ss" // 輸出日志時間格式 } }pm2.png
-
2. 修改pm2啟動命令, 重啟
1. 修改啟動命令: `"prd": "cross-env NODE_ENV=dev pm2 start pm2.conf.json"`
2. 重啟
3. 訪問server, 檢查日志文件內(nèi)容(日志文件是否生效)
1. 就已經(jīng)有訪問記錄
5. pm2的多進程
1. 多進程優(yōu)勢, 單個進程內(nèi)存的內(nèi)存受限(內(nèi)存充分使用), 充分發(fā)揮多核CPU的優(yōu)勢
2. 多進程劣勢, 數(shù)據(jù)不共享, redis解決
3. 自動負(fù)載均衡, 具體表現(xiàn)在, 日志文件按照進程的響應(yīng)不同, 生成多個日志文件

