以 100% CPU 运行的 pm2 - 如何调试

Loo*_*Src 7 node.js pm2

过去几周,我正在为pm2 100% CPU 使用率而苦苦挣扎,这会挂起我的节点服务器。

我尝试阅读日志,但没有发现任何问题。

我的节点版本:6.9.1
PM2 是:2.4.4。
操作系统:Ubuntu 14.04
平均而言,我的 CPU 使用率是:~5

我手动重新启动所有应用程序 - pm2 restart all。

pm2.log: fluid_admin@instance-2:~$ tail -15 .pm2/pm2.log

2017-04-12 09:55:30:在-fork 模式下启动执行序列,应用名称:fluid-prod id:0
2017-04-12 09:55:30:应用名称:fluid-prod id:0 在线
2017-04-14 13:53:21:停止应用程序:流体产品 ID:0
2017-04-14 13:53:21:停止应用程序:nedbserver id:1
2017-04-14 13:53:21:带有 ID [1] 和 pid [32557] 的应用程序 [nedbserver],通过信号 [SIGINT] 以代码 [0] 退出
2017-04-14 13:53:21:pid=32574 msg=杀死失败 - 100 毫秒后重试
2017-04-14 13:53:21:pid=32557 msg=进程被杀
2017-04-14 13:53:21:在-fork 模式下启动执行序列,应用名称:nedbserver id:1
2017-04-14 13:53:21:ID [0] 和 pid [32574] 的应用程序 [fluid-prod],通过信号 [SIGINT] 以代码 [0] 退出
2017-04-14 13:53:21:应用名称:nedbserver id:1 在​​线
2017-04-14 13:53:21:pid=32574 msg=进程被杀
2017-04-14 13:53:21:在-fork 模式下启动执行序列,应用名称:fluid-prod id:0
2017-04-14 13:53:21:应用名称:fluid-prod id:0 在线

应用程序在 GAE 上运行,操作系统是:Ubuntu 14.04。

PM2高时我的CPU使用率

6 个月前,我已从永远转移到 pm2。直到最近,它还是工作文件,但现在我经常遇到这个问题。

我不知道处理这个问题。有人可以帮助我如何调试这个问题。

它又发生了。TOP 命令的输出 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
25059 fluid_a+ 20 0 1260364 105532 8236 R 99.7 17.5 58:27.27 node fluid/server/tools/www + 1 root 20 0 33520 3208 1792 S 0.0 0.5 0:04.82 /sbin/init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kthreadd]

启动我的应用程序的脚本:

pm2 stop fluid-prod pm2 start \ -n fluid-prod \ -e /path/to/fluid-error.log \ -o /path/to/fluid-out.log \ $(dirname $0)/www -- --max-memory-restart 200M --env=production