PM2 是一个带有负载均衡功能的Node应用的进程管理器,其对Node应用的管理能力出众!
当你要将Node应用利用服务器上的所有CPU,并保证进程永远都活着,0秒的重载,PM2是完美的。
PM2 主要特性:
- 内建负载均衡
- 后台运行
- 0秒停机重载,我理解大概意思是维护升级的时候不需要停机.
- 具有Ubuntu和CentOS 的启动脚本
- 停止不稳定的进程
- 控制台检测
- 提供 HTTP API
- 远程控制和实时的接口API
安装方式
npm install -g pm2
使用方式
pm2 start
# -i <number of workers>参数用来告诉PM2以cluster_mode的形式运行你的app(对应的叫fork_mode),后面的数字表示要启动的工作线程的数量。如果给定的数字为0,PM2则会根据你CPU核心的数量来生成对应的工作线程。
启动将由pm2管理应用,并提供了参数来生成工作线程。
pm2 restart
虽然pm2会自动重启挂掉的应用,但是也可以进行手动重启。
pm2 scale <app name> <n>
# 参数<n>指定工作线程的数量,被用来增加或减少集群数。你也可以通过pm2 scale app +3的方式来指定要增加多少工作线程。
如果需要增加工作线程的数量,可以通过pm2 scale来对集群进行扩展。
pm2 list
列出由pm2管理的所有进程信息,还会显示一个进程会被启动多少次,因为没处理的异常。
pm2 monit
监视每个node进程的CPU和内存的使用情况。
pm2 kill
删除所有pm2进程
将PM2配置成自动启动
想要PM2在服务器重启后自动运行之前的应用,可以先通过pm2 start启动你的应用,然后执行下面的命令:
pm2 save
这将在~/.pm2目录下生成一个dump.pm2文件,里面描述了当前PM2上运行着的所有应用。然后执行命令:
pm2 startup [platform]