【发布时间】:2017-08-25 09:30:23
【问题描述】:
我有一个运行 pm2(v2.4.2) 和 node(v7.7.4) 的快速服务器。这是pm2 list的截图:
这里是htop截图:
如您所见,CPU 使用率为 100%。并且运行的 PID 与 pm2 列表不匹配。几个小时或几天后,我的服务器将没有任何响应。我在pm2.log 文件中找不到任何日志。有时pm2 restart 会解决这个问题。但有时我无法执行任何pm2 命令。我需要通过ps -Af | grep pm2 | awk '{print $2}' | xargs kill -9
杀死 pm2 进程,然后重新启动。
那么这两个cpu使用率高的进程是从哪里来的呢?这就是为什么我的服务器没有响应?
【问题讨论】:
-
您的服务器没有响应是因为 CPU 处于 100%。 1. 当你运行 PM2 时,运行 pm2 list all .. 看看这是否是占用 CPU 的原因。然而,从日志看来,这些是另外两个不相关的进程(不是来自 PM2)。看看你的服务器上除了节点还有什么在运行。
-
@twg 第一个屏幕截图是
pm2 list all的结果。此服务器上没有运行其他任何东西。我没有看到你说的其他 2 个不相关的过程。node /root/git/feserver/bin/www是我的项目入口。最困惑的是运行的 PID 与pm2 list结果不匹配。 -
根据您的操作系统,您应该能够获得在那些神秘的 PID 号上运行的进程的名称。看看这里StackOverflow
-
@Hom 你解决了这个问题还是还在发生?你是在使用
chokidar还是在观察文件系统的变化?一个月前我也遇到过类似的问题。 -
@MarcosCasagrande 仍在发生。我不使用
chokidar,也不看文件更改。我写了一个 cpu 使用保护进程来解决这个问题。这是gist
标签: pm2