前言
Node.js 是目前流行的服务器端编程语言之一,它的优点在于易学易用,内置模块丰富,而且拥有一个强大的开源社区。但是在实际开发中,经常会出现进程意外挂掉,或者性能不佳的情况,这时我们就需要一个能够帮助我们监控进程状态的工具来解决这些问题。本篇文章将介绍如何使用 PM2 监控 Node.js 进程状态,以及如何解决一些常见的问题。
PM2 简介
PM2 是一个基于 Node.js 的进程管理器和监控工具,具有以下优点:
- 可以轻松地启动、重启、停止和管理多个 Node.js 进程。
- 自带日志管理功能,支持日志轮转和文件压缩。
- 内置负载均衡功能,可以让多个进程共享同一个端口。
- 支持多语言,可以配置多种运行环境,包括 Node.js、Python、Ruby、Java 等。
- 可以监控进程的 CPU、内存、网络、I/O 等性能指标,并及时发出警告通知,帮助我们发现问题。
安装 PM2
使用 PM2 首先需要安装它。我们可以使用 npm 进行安装:
npm install pm2 -g
安装完成后,我们可以使用 pm2
命令进行启动和管理进程。
使用 PM2 启动和管理进程
在使用 PM2 启动和管理进程之前,我们需要先修改 Node.js 应用程序的启动文件。把原来的 node app.js
命令改为 pm2 start app.js
命令,即可使用 PM2 启动应用程序。
使用 pm2 start app.js
命令启动应用程序后,可以使用 pm2 list
命令查看所有运行中的进程,如下所示:
$ pm2 list ┌──────────┬────┬─────────┬──────┬─────┬─────────┬────────┬─────────────┬───────┬───────────┬──────────┐ │ App name │ id │ mode │ pid │ cpu │ mem │ uptime │ status │ rtime │ pm2 version│ node version │ ├──────────┼────┼─────────┼──────┼─────┼─────────┼────────┼─────────────┼───────┼───────────┼─────────────┤ │ app │ 0 │ cluster │ 6787 │ 0% │ 26.8 MB │ 0s │ online │ 130ms │ 2.10.4 │ 14.15.3 │ └──────────┴────┴─────────┴──────┴─────┴─────────┴────────┴─────────────┴───────┴───────────┴─────────────┘
我们可以看到 app
运行在集群模式下,进程 ID 为 6787
,CPU 使用率为 0%
,内存占用约 26.8 MB
,运行时间为 0s
。
使用 pm2 stop app
命令可以停止应用程序,使用 pm2 delete app
命令可以删除应用程序。
使用 PM2 监控进程状态
PM2 除了可以启动和管理进程之外,还可以监控进程状态。具体步骤如下:
打开 PM2 Web Dashboard,地址为 http://localhost:9615/。
pm2 web
在 Chrome 浏览器中打开网址 http://localhost:9615/,可以看到 PM2 Web Dashboard 界面。
可以看到 Dashboard 显示了目前所有进程的 CPU 使用率、内存占用、日志信息等。
在进程页面中查看进程状态,包括 CPU 使用率、内存占用、进程运行时间等。
点击进程 ID 可以进入进程页面,可以看到进程的详细信息,包括 CPU 使用率、内存占用、进程运行时间等。
右上角的红色警告符号表示该进程遇到了问题,可以点击进去查看具体的错误信息。
对于 CPU 占用率过高或内存占用过多等问题,可以通过将
max_memory_restart
和max_restarts
参数配置到应用的package.json
文件来限制。示例代码如下:
// javascriptcn.com 代码示例 { "name": "myapp", "version": "0.1.0", "dependencies": { "express": "^4.17.1" }, "scripts": { "start": "node app.js" }, "pm2": { "max_memory_restart": "100M", "max_restarts": 10 } }
上面的配置中,
max_memory_restart
表示进程的内存占用超过100MB
时自动重启,max_restarts
表示进程连续重启超过10
次时认为进程不稳定,自动停止运行。
总结
PM2 是一个强大的进程管理器和监控工具,在 Node.js 后端开发中应用广泛。本篇文章介绍了如何使用 PM2 启动和管理进程,以及如何使用 PM2 监控进程状态,帮助开发者更好地管理和监控 Node.js 进程,提高应用程序的稳定性和可靠性。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6528fc927d4982a6ebb8da89