pm2,部署nodejs,使用方法及本身使用後總結的經驗

pm2是一個帶有負載均衡功能的應用進程管理器,能夠用它來管理你的node進程,並查看node進程的狀態,固然也支持性能監控,進程守護等功能。他會肯定重啓開機以後,可以保證程序也能運行起來。目前尚未操做這部分,沒有過多介紹node

啓動npm

pm2 start app.jjson

添加進程/應用監視watch  (監視)api

pm2 start app2.js  --watchbash

上面圖片中watching欄,disabled變爲enabled服務器

列出全部進程app

pm2 list負載均衡

結束進程性能

pm2 stop appui

結束全部進程

pm2 stop all

刪除進程

pm2 delete app

刪除全部進程

pm2 delete all

查看某個進程狀況

pm2 describe app

查看全部進程資源消耗狀況

pm2 monit

重啓進程

pm2 restart app

重啓全部進程

pm2 restart all

pm2 restart 會殺死全部進程 從而reload實現0秒的停機時間從新加載,要從新加載使用以下命令

pm2 reload <app_name>
pm2 reload process.json

查看進程日誌

pm2 logs app

查看全部進程日誌

pm2 logs

保存腳本

pm2 save

建立開機啓動腳本

pm2 startup systemd

更新pm2

確保正確保存了全部進程:

pm2 save

而後從NPM安裝最新的PM2版本:

npm install pm2 -g 

最後更新內存中的PM2進程:

pm2 update

pm2配置文件

文件名 test.json  能夠經過 pm2 start test.json 快速啓動      app中每一項就是一個應用

{
   "apps": [
       {
      "name": "coin1_6",
       "cwd": "./",
       "script": "coin1_6.js",
       "log_date_format": "YYYY-MM-DD HH:mm Z",
       "error_file": "/var/log/node-app/node-app.stderr.log",
       "out_file": "log/node-app.stdout.log",
       "pid_file": "pids/node-geo-api.pid",
        "instances": "8",
        "min_uptime": "60s",
        "max_restarts": 10,
        "max_memory_restart": "100M",
        "cron_restart": "1 0 * * *",
        "watch": true,
        "merge_logs": true,
        "exec_interpreter": "node",
        "exec_mode": "cluster",
        "autorestart": false,
        "vizion": false
  }
]
}

 

name://應用程序名稱
cwd://應用程序所在的目錄
script://應用程序的腳本路徑
log_date_format:
error_file:// 錯誤日誌路徑
out_file:// 普通日誌路徑
pid_file://自定義應用程序的pid文件
instances://啓動的線程數量(線程最大數量通常是由服務器核數決定的)
min_uptime://最小運行時間,這裏設置的是60s即若是應用程序在60s內退出,pm2會認爲程序異常退出,此時觸發重啓max_restarts設置數量
max_restarts://設置應用程序異常退出重啓的次數,默認15次(從0開始計數)
cron_restart://定時啓動,解決重啓能解決的問題
watch://是否啓用監控模式,默認是false。若是設置成true,當應用程序變更時,pm2會自動重載。這裏也能夠設置你要監控的文件。
merge_logs:
exec_interpreter://應用程序的腳本類型,默認是node
exec_mode://應用程序啓動模式,默認是fork
autorestart://啓用/禁用應用程序崩潰或退出時自動重啓
vizion://啓用/禁用vizion特性(版本控制)

本人使用的時候:

1.max_memory_restart在cluster狀態下小於平均的mem,服務器的cpu會佔的很高,

......

詳細可查看官網文檔:http://pm2.keymetrics.io/docs/usage/quick-start/

相關文章
相關標籤/搜索