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