PM2进程管理完全指南:从入门到生产部署:PM2进程管理器完整教程,覆盖部署、监控、日志和集群模式。本文为tutorial类教程,发布于2026-03-27,已有4次阅读。由ONE社区整理发布,所有教程内容免费开放。
PM2进程管理完全指南:从入门到生产部署
PM2是Node.js生态中最流行的进程管理工具,不仅能保证应用7x24小时稳定运行,还提供了负载均衡、日志管理、性能监控等生产环境必备的功能。
为什么需要PM2
Node.js进程的脆弱性
直接使用node app.js启动的应用存在严重问题:一个未捕获的异常就会导致整个进程崩溃退出,而且关闭终端后进程也会终止。在生产环境中,这是不可接受的。PM2通过自动重启、守护进程、集群模式等机制完美解决了这些问题。
PM2的核心能力
PM2提供了进程守护(崩溃自动重启)、集群模式(多进程负载均衡)、零停机重启(graceful reload)、日志管理(集中化日志收集和轮转)、性能监控(内存/CPU实时监控)和开机自启等关键功能。
安装与基础使用
全局安装
通过npm全局安装:npm install pm2 -g。安装完成后运行pm2 --version确认。建议同时安装pm2-logrotate模块实现日志自动轮转:pm2 install pm2-logrotate。
启动应用
最简单的启动方式:pm2 start app.js。常用启动参数包括:--name指定进程名称、--watch开启文件变更自动重启、-i max以集群模式启动(max自动使用全部CPU核心)、--max-memory-restart 300M设置内存上限自动重启。
常用管理命令
pm2 list查看所有进程状态、pm2 stop/restart/delete操作指定进程、pm2 logs查看实时日志、pm2 monit打开终端监控面板、pm2 flush清理日志文件。这些命令是日常运维的基础操作。
生态系统配置文件
ecosystem.config.js
对于生产环境,推荐使用配置文件管理应用。ecosystem.config.js可以定义多个应用的完整配置,包括启动脚本、环境变量、集群实例数、日志路径、自动重启策略等。使用pm2 start ecosystem.config.js一键启动所有配置的应用。
配置文件支持多环境切换(development/staging/production),通过pm2 start ecosystem.config.js --env production指定环境,自动加载对应的环境变量配置。
关键配置项详解
instances设置进程数量,0或max表示与CPU核心数相同。exec_mode选择fork(单进程)或cluster(集群)模式。max_restarts限制连续重启次数防止死循环。restart_delay设置重启间隔避免频繁重启。autorestart配合watch使用控制文件变更触发重启的行为。
集群模式深入
工作原理
PM2的集群模式基于Node.js的cluster模块,创建多个工作进程共享同一端口。主进程负责请求分发,工作进程负责实际处理。这种方式充分利用多核CPU资源,单机处理能力成倍提升。
零停机重载
pm2 reload命令实现零停机更新:PM2逐个重启工作进程,在新进程准备就绪后才关闭旧进程,整个过程用户请求不会中断。这对于生产环境的热更新至关重要。
负载均衡策略
PM2默认使用轮询(round-robin)策略分发请求。对于大部分Web应用这已经足够。如果需要基于连接数的智能分发,可以在Nginx层面配置更精细的负载均衡策略,PM2专注于进程管理。
日志管理
日志查看与过滤
pm2 logs查看所有应用的实时日志输出、pm2 logs app-name查看指定应用、pm2 logs --lines 100查看最近100行。使用--json参数输出JSON格式日志,便于后续处理和分析。
日志轮转配置
安装pm2-logrotate后,可以配置日志文件的最大大小、保留数量和压缩策略。设置命令:pm2 set pm2-logrotate:max_size 50M(单文件最大50MB)、pm2 set pm2-logrotate:retain 10(保留10个历史文件)。避免日志文件无限增长耗尽磁盘空间。
开机自启配置
pm2 startup命令自动生成系统启动脚本(支持systemd、upstart等)。执行后PM2会输出一条需要root权限运行的命令,执行它完成配置。然后运行pm2 save保存当前进程列表,系统重启后PM2会自动恢复所有应用。
监控与告警
PM2内置监控
pm2 monit提供终端版的实时监控面板,展示CPU、内存、事件循环延迟等指标。pm2 plus是PM2的云端监控平台(收费),提供Web版的监控面板、邮件告警和远程管理功能。
自定义监控
通过PM2的API接口(pm2.connect/pm2.list)可以编程获取进程信息,接入自己的监控系统。结合Prometheus和Grafana搭建自定义的监控和告警方案,实现进程状态、资源使用和业务指标的统一监控。
生产环境最佳实践
使用ecosystem.config.js管理配置,配合Git实现配置版本控制。集群模式进程数设为CPU核心数减一,留一个核心给系统和PM2主进程。设置合理的max-memory-restart阈值避免内存泄漏导致系统崩溃。配置日志轮转防止磁盘满。开启graceful shutdown确保进程退出前完成正在处理的请求。
总结
PM2是Node.js生产环境的必备工具。从简单的进程守护到复杂的集群管理,PM2提供了完整的解决方案。建议在开发阶段就使用PM2启动应用,提前熟悉其配置和管理方式,确保上线时的顺畅过渡。