我们正在部署一个 Node.js 应用程序。这个应用程序消耗的 RSS 内存似乎比它应该的要多。所以我们开始深入研究,我们发现了以下内容,感谢 process.memoryUsage();
RSS 内存快速增长到 400MB 左右,在 400MB-500MB 之间或多或少保持稳定,有小涨小跌(垃圾收集器运行?)
heapUsed 迅速增长到 50MB,然后保持在该级别(20MB 和 100MB 之间)。
heaptotal 总是比 heapUsed 多大约 30MB。
如您所见,堆和 RSS 之间存在巨大差异,我认为这是我们应该关注的地方。我们的堆中似乎没有任何非常明显的泄漏。
现在,RSS 中有什么不在堆中?我相信 C 扩展和缓冲区,对吧?如果是这样,我们如何调试它。我们还应该寻找什么?