核心价值
- 进程守护,系统崩溃自动重启
- 启动多进程,充分利用 CPU 和内存
- 自带日志记录功能
安装
npm install pm2 -g
常用命令
// 启动
pm2 start ...
// 列表
pm2 list
// 重启
pm2 restart <AppName>/<id>
// 停止
pm2 stop <AppName>/<id>
// 删除
pm2 delete <AppName>/<id>
// 信息
pm2 info <AppName>/<id>
// 日志
pm2 log <AppName>/<id>
// cpu、内存占用信息
pm2 monit <AppName>/<id>
进程守护
- node app.js 和 nodemon app.js,进程崩溃则不能访问
- pm2 遇到进程崩溃,会自动重启
配置
- 新建 PM2 配置文件(包括进程数量,日志文件目录等)
- 修改 PM2 启动命令,重启
- 访问 server,检查日志文件的内容(日志记录是否生效)
pm2.conf.json
{
"apps": {
"name": "pm2-test-server",
"script": "app.js",
"watch": true,
"ignore_watch": [
"node_modules",
"logs"
],
"instances": 4,
"error_file": "logs/err.log",
"out_file": "logs/out.log",
"log_date_format": "YYYY-MM-DD HH:mm:ss"
}
}
多进程
为何使用多进程
- 操作系统限制一个进程的内存
- 无法充分利用机器全部内存
- 无法充分利用多核 CPU 的优势
多进程和 redis
- 多进程之间,内存无法共享
- 多进程访问一个 redis,实现数据共享