1.PM2 核心优势(一站式解决方案)
# PM2 一键搞定
pm2 start app.js
# 1. 进程守护(崩溃自动重启)
# 2. 多核利用(cluster 模式)
# 3. 日志管理(自动切割归档)
# 4. 监控面板(实时状态查看)
# 5. 零秒重启(无停机热更新)2.安装与基本使用
# 全局安装(一次安装,终身可用)
npm install pm2 -g
# 启动应用(最简形式,app.js 是你的入口文件)
pm2 start app.js
# 查看所有进程(常用)
pm2 ls # 或 pm2 list
# 监控面板(可视化查看状态)
pm2 monit
# 查看日志(排查错误超有用)
pm2 logs # 所有应用日志
pm2 logs app # 指定应用日志
pm2 logs --lines 100 # 查看最近100行3.核心进程管理命令
# 启动相关
# 指定应用名,方便管理
pm2 start app.js --name "my-api"
# 启动4个实例(多核利用)
pm2 start app.js -i 4
# 文件变化自动重启(开发用)
pm2 start app.js --watch
# 停止/删除相关
pm2 stop app # 停止指定应用
pm2 stop all # 停止所有应用
pm2 delete app # 删除指定应用
pm2 delete all # 删除所有应用
# 重启相关
pm2 restart app # 普通重启(先停后启)
pm2 reload app # 零秒重启(优雅重启,生产首选)4.用配置文件管理
创建 ecosystem.config.js 文件,统一配置应用参数,适合生产环境:
module.exports = {
apps: [{
name: 'my-app', // 应用名
script: './app.js', // 入口文件
instances: 'max', // 启动所有CPU核心(多核利用)
exec_mode: 'cluster', // 开启cluster模式
max_memory_restart: '1G',// 内存超1G自动重启(防泄漏)
autorestart: true, // 崩溃自动重启
log_date_format: 'YYYY-MM-DD HH:mm:ss', // 日志时间格式
error_file: '/var/log/pm2/my-app-err.log', // 错误日志路径
out_file: '/var/log/pm2/my-app-out.log', // 输出日志路径
env: { // 开发环境配置
NODE_ENV: 'development',
PORT: 3000
},
env_production: { // 生产环境配置
NODE_ENV: 'production',
PORT: 80
}
}]
}启动命令:pm2 start ecosystem.config.js --env production
5.日志相关
- 日志轮转:安装 pm2 install pm2-logrotate,防止日志占满磁盘;
- 进程频繁重启:用 pm2 logs app --lines 50 查看错误原因,大概率是内存泄漏或代码报错;
- 进程状态异常:用 pm2 describe app 查看详细配置,排查端口冲突或依赖问题。
6.最佳实践总结
- 生产环境优先用 ecosystem.config.js 配置,不用命令行参数;
- 开启 cluster 模式,充分利用多核CPU,提升性能;
- 配置日志轮转和内存限制,避免磁盘爆满、内存泄漏;
- 重启用 pm2 reload,实现零停机更新;
- 定期执行 pm2 save,备份进程列表。
部分内容转载自: https://mp.weixin.qq.com/s/p7Tz6EbXpbprauz8Bghztw
点赞 (0)
欢迎转载:转载时请注明本文出处及文章链接