PM2 node进程 CPU达到116%+(帮我解决问题给红包感谢!!!)
发布于 3 年前 作者 xulayen 3896 次浏览 来自 问答

NODE应用CPU使用率过高,可能是PM2引起的吗?

image.png

image.png

image.png

1、app使用pm2启动,默认两个负载是上图中的`node /mnt/pgyer`
2、app运行一段时间,比如压力测试、并发测试过程中`node /mnt/pgyer`的进程会升高,停止压测、并发测试之后对应的CPU也会降下来。反复持续一段时间之后,`node`进程出现,并且CPU持续变高,一直达到`110%+`。整个机器的CPU使用率达到了`60%`左右,除非杀掉`node`进程才会恢复正常;图2是站点不做任何访问CPU使用率的截图,还是依然如此之高。
3、使用传统的方式`node ./app.js`的方式启动一个进程,压测、并发测试等等,CPU使用率会上升但是随着压测、并发测试的结束,CPU使用率也会相应的降下来。反复几次也都是正常的。
4、我怀疑是不是PM2使用不当呢。

4 回复

这种信息给出来没啥意义,直接用 Alinode 或相关工具,直接看热点代码

@atian25 好的,谢谢你的回答。很有用,已经构建了一个alinode。很奇怪构建完成之后监控再也没有出现CPU暴涨的情况。啊哈哈 帮了我个大忙 加我WX woshixulei4237 给你发红包表示感谢。

推荐你用 htop 命令来看,可以看到更多进程信息,另外pm2的cluster模式在极高的并发量下其实不行,不知道为什么,后来用fork模式+node原生的cluster模块才搞定。 (表现是CPU使用率突然下降,HTTP响应变得非常慢) 在我10个月前发的贴子中有记录,当时的pm2用的什么版本已经不记得了,不知道最新的pm2还有没有这个问题: https://cnodejs.org/topic/5b433f8513ca2fe569fb9225

@xulayen 那就挂着监控吧,出现问题的时候就 dump 下。 红包没必要。

回到顶部