【发布时间】:2016-01-24 23:50:21
【问题描述】:
我目前正在运行一个 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 使用有任何想法吗?谢谢。
【问题讨论】:
-
它是关于代码如何有效的,没有人可以在没有看到代码的情况下预测它。因为它有很多原因可以像您解释的那样起作用。您可以与我们分享代码的一部分吗?或者你可以向我提出要求:hackhands.com/num8er我会找到问题的。
标签: mysql node.js memory-leaks