我当前正在运行一个 Node.js 服务器,该服务器与远程 MySQL 数据库通信并对各种 API 执行 Web 请求。服务器空闲时,CPU 使用率在 0-5% 之间,RAM 使用率在 300MB 左右。然而,当服务器处于负载状态时,RAM 使用率会线性上升,CPU 使用率会大幅上升,有时甚至达到 100%。
我设置了一个快照解决方案,当使用 node-memwatch 检测到泄漏时,它将拍摄堆快照。当服务器使用 1GB、1.5GB 和 2.5GB RAM 时,我下载了 3 个不同的快照,并尝试分析它们,但我不知道问题出在哪里,因为分析中的存储总量似乎要低得多。
这是其中一张快照,当时服务器的内存使用量为 1107MB。
https://i.gyazo.com/e3dadeb727be3bdb4eeb833094291ebf.png
这相符吗?据我所知,最多只分配给对象 500 MB。另外,有人对我所得到的疯狂的 CPU 使用率有任何想法吗?谢谢。
最佳答案
您需要的是更好的工具来正确诊断泄漏,看起来您可以使用 N|Solid https://nodesource.com/products/nsolid 获得一些帮助,它将帮助您可视化和监控您的应用程序,可以在开发环境中免费使用。
关于mysql - Node.js 内存使用率高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33336277/