主题
使用 PM2 管理进程
在生产环境中,确保 Express 应用的高可用性和稳定性是至关重要的。PM2 是一个流行的进程管理工具,它能够帮助开发者管理和监控 Node.js 应用的进程,提供自动重启、负载均衡、日志管理等功能。本章节将介绍如何使用 PM2 来管理 Express 应用。
1. 什么是 PM2?
PM2 是一个高效的进程管理器,用于运行、监控和管理 Node.js 应用。它提供了以下关键功能:
- 进程守护:如果应用崩溃或停止,PM2 会自动重启应用,确保应用持续运行。
- 负载均衡:在多核 CPU 上,PM2 可以启动多个进程来实现负载均衡。
- 日志管理:PM2 会自动收集应用的输出日志,便于后续查看和分析。
- 监控:PM2 提供进程状态监控和应用性能指标。
- 集群模式:PM2 支持启动 Node.js 应用的多实例,以充分利用服务器的多核处理能力。
2. 安装 PM2
PM2 可以通过 npm 安装。在全局范围内安装 PM2,以便在任何目录下使用:
bash
npm install pm2@latest -g
安装完成后,可以通过 pm2
命令来启动、停止和管理应用。
3. 启动 Express 应用
假设你已经有一个 Express 应用,例如 app.js
文件。使用 PM2 启动应用非常简单:
bash
pm2 start app.js
PM2 会启动 app.js
文件,并将其作为一个进程管理起来。如果应用崩溃或停止,PM2 会自动重启它。
3.1 指定应用名称
为了更方便地管理多个应用,你可以为应用指定一个名称:
bash
pm2 start app.js --name "express-app"
这样,在使用 PM2 管理多个应用时,你可以通过名称来区分和操作每个进程。
3.2 启动多个实例(负载均衡)
PM2 支持多核负载均衡,你可以通过启动多个应用实例来充分利用服务器的多核处理能力:
bash
pm2 start app.js -i max # 启动与 CPU 核心数量相等的进程
或者,你也可以指定实例数量:
bash
pm2 start app.js -i 4 # 启动 4 个进程
在启动多个实例时,PM2 会自动处理负载均衡,确保流量均匀分配到各个进程。
4. 查看应用状态
使用 pm2 list
命令查看当前所有进程的状态:
bash
pm2 list
这个命令会显示所有由 PM2 管理的应用的基本信息,包括应用名称、ID、状态、内存使用量、CPU 使用量等。
5. 查看日志
PM2 会自动收集应用的日志信息,你可以通过以下命令查看日志:
bash
pm2 logs
你还可以查看特定应用的日志:
bash
pm2 logs express-app
PM2 会显示应用的输出日志,包括标准输出和错误日志。
6. 监控应用
PM2 提供了强大的监控功能,可以实时查看应用的 CPU 和内存使用情况。通过以下命令启动实时监控:
bash
pm2 monit
这将打开一个实时的监控界面,展示所有管理进程的性能指标。
7. 停止和重启应用
7.1 停止应用
使用 pm2 stop
命令停止应用:
bash
pm2 stop express-app
7.2 重启应用
使用 pm2 restart
命令重启应用:
bash
pm2 restart express-app
这将优雅地重启应用,保持其进程 ID 不变。
7.3 删除应用
如果你不再需要某个应用,可以通过 pm2 delete
删除它:
bash
pm2 delete express-app
8. 保存和恢复进程列表
PM2 允许你保存当前的进程列表,并在重启服务器后恢复这些进程。这样,即使服务器重启了,PM2 也会自动重新启动所有进程。
8.1 保存进程列表
bash
pm2 save
这会将当前的进程列表保存到配置文件中。
8.2 恢复进程列表
如果你重启了服务器,可以使用以下命令恢复进程:
bash
pm2 resurrect
9. 配置 PM2 自启动
为了确保服务器重启后 PM2 会自动启动你的应用,可以使用 pm2 startup
配置自启动。根据你的操作系统,PM2 会自动生成一个启动脚本。
9.1 配置自启动
bash
pm2 startup
然后按照提示的命令执行(通常是 sudo
权限)。执行完毕后,PM2 会自动配置系统启动脚本,以便在系统重启时启动所有进程。
9.2 保存进程配置
bash
pm2 save
这样,PM2 会将当前的进程列表和配置保存到启动脚本中,确保在系统重启后自动恢复。
10. 总结
在本章节中,我们学习了如何使用 PM2 管理 Express 应用:
- 安装 PM2:通过 npm 安装 PM2,并在全局范围内使用。
- 启动应用:使用
pm2 start
启动应用,并支持负载均衡和多实例运行。 - 查看状态和日志:使用
pm2 list
查看应用状态,使用pm2 logs
查看应用日志。 - 进程管理:使用
pm2 stop
、pm2 restart
、pm2 delete
管理进程。 - 保存和恢复进程列表:使用
pm2 save
和pm2 resurrect
保存和恢复进程配置。 - PM2 自启动:配置 PM2 在服务器重启后自动启动应用。
PM2 提供了强大的进程管理功能,能够帮助开发者轻松地管理和监控 Express 应用,确保应用的高可用性和稳定性。在生产环境中,PM2 是一个不可或缺的工具。