Node.js 中使用 PM2 进行进程管理

在 Node.js 项目中,经常需要运行多个进程来处理请求,例如 Web 服务器、消息队列等。这时候,我们需要一个进程管理工具来监控和管理这些进程,能够自动重启、监控 CPU 和内存使用情况等。而 PM2 就是一个非常好用的进程管理工具。

PM2 简介

PM2 可以在后台运行多个 Node.js 进程,并提供以下功能:

  • 自动重启:当进程崩溃或者代码变化时,PM2 自动重启进程
  • 集中日志:所有进程的日志输出到同一个日志文件中,方便查看和分析
  • 负载均衡:PM2 可以使用多个进程同时运行同一个 Node.js 应用程序,通过负载均衡分配请求,提高系统的并发处理能力
  • 监控:PM2 可以监控进程 CPU 和内存的使用情况,并通过事件触发器进行告警和自动重启

安装和使用

首先需要全局安装 PM2:

--- ------- -- ---

然后,在项目的根目录下运行以下命令启动一个 Node.js 进程:

--- ----- ------

这样就可以将 app.js 启动到后台,并保证当 app.js 发生异常崩溃时,PM2 会自动重启:

--- ----- ------ ------ -----

如果需要为进程指定一个名称,可以通过 --name 选项来指定。

如果需要同时运行多个进程,可以通过以下命令来指定要启动的进程数量:

--- ----- ------ -- ---

这样 PM2 会将进程数量设置为 CPU 数量的最大值,以提高系统的处理能力。

如果需要停止某个进程,可以使用以下命令:

--- ---- -----

如果需要查看所有进程的列表,可以使用以下命令:

--- ----

监控和告警

为了监控 Node.js 进程的运行情况,PM2 提供了一个内置的 Web 界面。可以通过以下命令启动:

--- ---

在浏览器中访问 http://localhost:9615 可以查看到监控界面。

此外,PM2 还提供了事件触发器功能,可以通过配置触发器来在进程 CPU 或内存占用超过一定阈值时触发告警和自动重启。以下是一个 CPU 占用率超过 80% 触发告警和重启的配置示例:

--- ----- ------ ------ ----- -------------------- -- -------------- -- ------- ----------------- --------------- ------ -- ----- -----------------------
--- ------- ----- --- --
--- ------- ----- --- --

这样当 myapp 进程的 CPU 或内存占用超过 80% 时,PM2 会触发相应的事件,执行指定的动作。

结论

通过使用 PM2 进程管理工具,可以方便地运行和管理 Node.js 应用程序,提供自动重启、负载均衡、日志管理、监控告警等功能。在实际项目中,PM2 是一个非常实用的工具,值得推荐。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/66ffde00485b53fc16b5e0e6