Nodejs应用程序过载CPU

Posted

技术标签:

【中文标题】Nodejs应用程序过载CPU【英文标题】:Nodejs application overloading CPU 【发布时间】:2018-02-25 11:33:23 【问题描述】:

由于我在远程 Ubuntu 16.04 LTS 虚拟机中运行的 nodejs 应用程序,我面临 CPU 过载问题。我正在使用 PM2 将我的 nodejs 应用程序安排为服务。

最初启动 nodejs 应用程序时,CPU 负载仍然很低;最多30%左右。然后慢慢地我发现 CPU 负载上升到 100%。这个 nodejs 应用程序正在轮询股票网站以获取有关股票的新信息,然后进行一些计算,然后在 5 分钟后重复。我不明白它是如何导致 CPU 过载的。

我注意到我的 1 个 nodejs 应用程序在 HTOP 命令中显示为 6 个不同的进程。不确定这是否正常或如何解决。任何帮助将不胜感激。

谢谢

问候,

阿迪尔

【问题讨论】:

“ps -ef | grep node”会提供额外的信息。第一个猜测是 Guardian.js 永远不会结束,你每 5 分钟开始一个新的。 “guardian.js”的副本会有所帮助。 根据 HTOP 的说法,一小时后主进程使用了​​ 20 分钟的 CPU。这还不错,一点也不差。 【参考方案1】:

谢谢,杰拉德。您的回复帮助解决了问题。原来 Guardian.js 没有退出,只是打开了新进程,直到系统过载。

【讨论】:

以上是关于Nodejs应用程序过载CPU的主要内容,如果未能解决你的问题,请参考以下文章

nodejs负载均衡:服务负载均衡

如何配置服务结构负载均衡器以停止对 CPU 过载节点的请求?

将节点添加到 Cassandra 集群会导致现有节点上的 CPU 过载

线上问题定位--CPU100%

linux cpu占用100%排查

三步排查JVM cpu 100%问题