pm2使用心得

2022-06-14 11:03:08 字數 1264 閱讀 7705

狐尼克朱迪

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...