pm2是什么?它是一个node的进程管理和监控工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。
callcheat
| # Fork mode | 
命令
| # Display option for pm2 logs command | 
cluster模块
node.js试运行在v8引擎上的,以单线程的方式运行,在多核心处理器的系统中并不能发挥其最大性能。可以使用cluster模块,下面
是一个例子:
| var cluster = require('cluster'); | 
pm2替代cluster模块
| // 原始代码 | 
执行pm2 start app.js -i 4,-i <number of workers>参数用来告诉PM2以cluster_mode的形式运行你的app(对应的叫fork_mode),后面的数字表示要启动的工作线程的数量。如果给定的数字为0,PM2则会根据你CPU核心的数量来生成对应的工作线程。
优点:
- 不论什么情况下,你的应用将一直运行,如果任意一个工作线程挂了,PM2会立即重启一个。
- 实时扩展集群,如果你需要增加工作线程的数量,可以通过pm2 scale <app name> <n>来对集群进行扩展。参数指定工作线程的数量,被用来增加或减少集群数。你也可以通过 pm2 scale app +3的方式来指定要增加多少工作线程。
- 生产环境零停机更新。PM2的reload <app name>功能将依次重启所有的工作线程。每一个线程会等待在新的线程创建之后才会被终止掉。
- 使用gracefulReload功能可以达到相同的目的,不同的是它不会立即终止工作线程,而是通过IPC发送一个shutdown信号来关闭所有当前的连接并处理一些自定义的任务,然后再优雅地退出。
| process.on('message', function(msg) { | 
PM2使用
- 安装 npm install -g pm2
- 更多命令
| # 安装 | 
跟多命令
| 
 | 
错误日志位置:
error log path /root/.pm2/pids/anaweb-13.pid
错误日志,出现启动 error找她就没错
out log path /root/.pm2/logs/anaweb-out-13.log
参考1: https://cnodejs.org/topic/5021c2cff767cc9a51e684e3
参考2: http://tcrct.iteye.com/blog/2043644
forever github: https://github.com/foreverjs/forever