【发布时间】:2012-10-19 01:45:29
【问题描述】:
我们正在部署一个 Node.js 应用程序。这个应用程序消耗的 RSS 内存似乎比它应该的要多。所以我们开始深入研究,我们发现了以下内容,感谢process.memoryUsage();
RSS 内存快速增长到 400MB 左右,在 400MB-500MB 中或多或少保持稳定,有小涨小跌(垃圾收集器运行?)
heapUsed 快速增长到 50MB,然后保持在该级别(20MB 到 100MB 之间)。
heaptotal 总是比 heapUsed 多大约 30MB。
如您所见,堆和 RSS 之间存在巨大差异,我认为这是我们应该关注的地方。我们的堆中似乎没有任何非常严重的泄漏。
现在,RSS 中有什么不在堆中?我相信 C 扩展和缓冲区,对吧?如果是这样,我们如何调试它。我们还应该寻找什么?
【问题讨论】:
-
你没有说明问题。你想完成什么?
-
我想知道 node.js 应用程序消耗的内存的细目,特别是为什么堆大小和 RSS 消耗之间存在如此大的差异。
-
我们有这个应用程序,它显然在浪费我们的资源。我们希望更好地利用它们。
-
如果有一个参数可以在运行时通过节点传递给 V8 以更改 RSS,我不会感到惊讶
-
Nodejs 人应该明确地更新文档,因为就目前 (nodejs.org/api/process.html#process_process_memoryusage) 而言,我们基本上处于黑暗之中;没有人确切知道 rss、heapused 和 heaptotal 代表什么。
标签: node.js memory heap-memory