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/