pm2的操作
1. 安裝PM2npm install pm2 -g
2. 啟動服務pm2 start app.js
3. 啟動N個名為SERVICE_NAME的服務的進程pm2 start app.js -i N --name SERVICE_NAME
4. 重啟服務npm restart SERVICE_NAME 
5. 設定記憶體使用超過多少後自動重啟伺服器pm2 start app.js --max_memory_restart 1024M
6. 監控服務pm2 monit
查看服務進程數
1. 查看物理CPU个数cat /proc/cpuinfo| grep "physical id" | sort| uniq | wc -l
2. 查看每個物理CPU中的核數cat /proc/cpuinfo| grep "cpu cores"| uniq
3. 查看邏輯CPU的個數cat /proc/cpuinfo| grep "processor"| wc -l
確認是否使用nginx
nginx的主要功能如下
- 反向代理,實現簡單的負載均衡: 如果有多台服務器或者一台服務器多個端口,可以考慮用nginx。
 - 靜態資源緩存:把一些靜態資源(如靜態頁面,js等資源文件)放到nginx裡,可以極大的提高服務的性能。
 
日誌問題
日誌系統對於任意應用而言,通常都是必不可少的一個輔助功能。pm2的相關文件默認存放於$HOME/.pm2/目錄下,其日誌主要有兩類:
- pm2自身的日誌,存放於$HOME/.pm2/pm2.log;
 - pm2所管理的應用的日誌,存放於$HOME/.pm2/logs/目錄下,標準誰出日誌存放於${APP_NAME}_out.log,標準錯誤日誌存放於${APP_NAME}_error.log;
 
pm2支持配置文件啟動
pm2 ecosystem:生成配置文件ecosystem.json
pm2 startOrRestart /file/path/ecosystem.json :通過配置文件啟動服務
如下是開發時ecosystem.json的內容:
{ 
    apps : [
        { 
            name : "nova", 
            max_memory_restart: "300M", 
            script : "/root/nova/app.js", 
            out_file : "/logs/nova_out.log", 
            error_file : "/logs/nova_error.log", 
            instances : 4, 
            exec_mode : "cluster", 
            env: {
                NODE_ENV: "production"
            }
        }
    ]
}
採用cluster模式啟動了4個服務進程;如果服務佔用的內存超過300M,會自動進行重啟。
更多相關知識請見官網:ecosystem-file
支援自動化部署
一個簡單的process.json範例
{
   "apps" : [{
      "name" : "HTTP-API",
      "script" : "http.js"
   }],
   "deploy" : {
     // "production" is the environment name
     "production" : {
       "user" : "ubuntu",
       "host" : ["192.168.0.13"],
       "ref"  : "origin/master",
       "repo" : "git@github.com:Username/repository.git",
       "path" : "/var/www/my-repository",
       "post-deploy" : "npm install; grunt dist"
      },
   }
}
/bin/bash:
# Setup deployment at remote location
$ pm2 deploy production setup
# Update remote version
$ pm2 deploy production update
# Revert to -1 deployment
$ pm2 deploy production revert 1
# execute command on remote machines
$ pm2 deploy production exec "pm2 reload all"
更多介紹請見官網:simple-deploy