解决服务器运行 Node.js 服务后一直 CPU 100%

一、背景

今年 4 月使用 Node 重构了几个 PHP 接口,并使用 PM2 跑在了服务器上,经历了几个迭代以后服务器 CPU 一直 100%,报错日志一直增加,但是由于接口正常运行加上工作比较忙就没管。

二、原因

最近查看了日志,最频繁的报错是:Error: Cannot find module '/xx/app.js',但是查找了代码,并没有引入这个模块,但是曾经使用了 /xx/app.js 作为入口文件,后期才迁移到 /xx/xx/app.js,于是查看 PM2 的自启动配置 dump.pm2,果然存在 /xx/app.js 的入口配置,应该是早期配置完成后并没有删除。

三、解决方案

停止 Node 服务:

pm2 stop all

查看 PM2 启动的所有的应用程序:

pm2 list

删除所有应用:

pm2 delete all

# or 删除有问题的应用
pm2 delete 0
pm2 delete 1
pm2 delete 2

启动正确路径的应用:

pm2 start /xx/xx/app.js

保存当前运行情况到自启动配置:

pm2 save

清空日志文件:

cd /root/.pm2
rm -rf logs/*
rm -rf pm2.log
touch pm2.log

发表评论

您的电子邮箱地址不会被公开。