1. PM2 核心价值解析
PM2 是 Node.js 生态中最流行的进程管理工具,我在多个生产环境中使用它超过 7 年。它最核心的价值在于解决了 Node.js 服务"裸奔"上线的三大痛点:
- 进程崩溃无自愈:普通 node app.js 启动方式在遇到未捕获异常时会直接退出
- 日志管理缺失:console.log 内容直接输出到终端,无法持久化或按大小分割
- 多核利用不足:单线程 Node.js 无法充分利用多核 CPU 性能
我经手的一个电商项目曾因未使用 PM2 导致半夜进程崩溃,直到次日早晨客服投诉才发现,直接损失订单金额超 50 万。而使用 PM2 后,同样的未处理异常会在 200ms 内自动重启服务。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 安装与基础配置
2.1 多环境安装方案
生产环境推荐全局安装并锁定版本:
bash复制npm install pm2@4.5.0 -g
pm2 update
开发环境建议项目本地安装:
bash复制npm install pm2 --save-dev
注意:不要混用 yarn 和 npm 安装 PM2,这会导致启动器路径混乱。我曾因此浪费两小时排查一个诡异的 "command not found" 错误。
2.2 首次启动的黄金参数
新手最容易犯的错误是直接 pm2 start app.js,这会导致:
- 日志堆积在内存
- 无集群模式
- 无启动命名
正确的生产级启动命令:
bash复制pm2 start app.js --name "API-Server" \
--log /var/log/pm2.log \
--max-memory-restart 500M \
-i max
参数解析:
--name:给进程起可识别的名称--log:指定统一日志路径--max-memory-restart:内存泄漏保护-i max:启用集群模式(CPU核心数)
3. 高级运维实战
3.1 日志管理四象限
PM2 日志分为四个关键维度管理:
| 日志类型 |
