狐尼克朱迪
pm2和forever是啟動nodejs服務常用到的兩個工具。使用這兩個指令可以使node服務在後台執行(類似於linux的nohup),另外它們可以在服務因異常或其他原因被殺掉後進行自動重啟。 由於node的單執行緒特徵,自動重啟能很大程度上的提高它的健壯性。
本文不對比兩者工具優劣,只是結合自己的使用,簡要介紹如何在工程部署時更好的使用pm2。
基本指令
更多的指令可以參考 pm2 介紹
高階用法
pm2支援配置檔案啟動:
pm2 ecosystem
: 生成配置檔案ecosystem.json
pm2 startorrestart /file/path/ecosystem.json
: 通過配置檔案啟動服務
如下是我開發時ecosystem.json的內容:
}]
}
上述採用cluster模式啟動了4個服務程序;如果服務占用的記憶體超過300m,會自動進行重啟。
監控工具
pm2的監控功能是其一大特色,它提供的監控服務keymetrics monitoring
很酷炫,感興趣的可以配置玩一下。
一些思考
1. 服務程序數
至於要啟動幾個程序,可以通過伺服器的核心數進行確定,幾個核心就啟動幾個服務。指令如下:
# 檢視物理cpu個數
cat /proc/cpuinfo| grep "physical id" | sort| uniq | wc -l
# 檢視每個物理cpu中core的個數(即核數)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 檢視邏輯cpu的個數
cat /proc/cpuinfo| grep "processor"| wc -l
當然可以啟動多個埠,乙個埠號對應乙個服務,這樣的話就需要nignx來做負載均衡了。
2. 是否需要nginx
nginx可以做的事情主要有兩個:
反向**,實現簡單的負載均衡: 如果有多台伺服器或者一台伺服器多個埠,可以考慮用nginx。
靜態資源快取:把一些靜態資源(如靜態頁面,js等資源檔案)放到nginx裡,可以極大的提高服務的效能。
3. 自動化部署
通過shell指令碼實現資源拉取、服務重啟、nginx快取更新等操作,再配合pm2的監控功能,就初步達到了乙個後端工程部署的標配了。
pm2使用總結
npm install pm2 g 安裝 pm2 version 版本 pm2 start index.js 啟動 pm2 list 檢視程序列表 scripts pm2遇到程序崩潰,會自動重啟 配置檔案 通過配置檔案啟動 pm2 start pm2.conf.jsonpm2 install pm2...
pm2基本使用
pm2官方文件 pm2是極其強大的程序管理工具,可以託管各種程式,豐富的環境日誌部署能力。這裡只記錄本專案中使用的功能。npm install g pm2 pm2 stop all 停止所有 pm2 restart all 重啟所有 pm2 list 檢視所有服務情況 pm2 logs 檢視所有日誌...
pm2使用介紹
npm install g pm2npm install pm2 g 命令列安裝 pm2 也可以把 max 引數傳遞給 start 正確的程序數目依賴於cpu的核心數目 pm2 list 顯示所有程序狀態 pm2 monit 監視所有程序 pm2 logs 顯示所有程序日誌 pm2 stop all...