RSS 内存增加,而 Node.js 中的堆稳定

gen*_*ejo 6 memory node.js

我有一个 node.js 应用程序,它支持 React 服务器渲染与内部服务器 API 通信。顺便说一句,应用程序的 RSS 内存正在逐渐增加。

我已经进行了 5 天的故障排除,并且已经检查了堆转储的比较。但是堆是稳定的。只有RSS在增加。

2017-06-29 09:10:00 083: memoryUsage { rss: 107597824, heapTotal: 78532608, heapUsed: 68423584 }
2017-06-29 09:10:00 212: memoryUsage { rss: 107163648, heapTotal: 78532608, heapUsed: 67970768 }
2017-06-29 09:10:00 377: memoryUsage { rss: 106213376, heapTotal: 77484032, heapUsed: 67166800 }
2017-06-29 09:10:00 448: memoryUsage { rss: 106184704, heapTotal: 78532608, heapUsed: 62869512 }
....
....
2017-06-30 15:25:00 144: memoryUsage { rss: 140972032, heapTotal: 78532608, heapUsed: 65703576 }
2017-06-30 15:25:00 379: memoryUsage { rss: 135626752, heapTotal: 74338304, heapUsed: 64624224 }
2017-06-30 15:25:00 396: memoryUsage { rss: 139800576, heapTotal: 78532608, heapUsed: 66888688 }
2017-06-30 15:25:00 699: memoryUsage { rss: 140886016, heapTotal: 77484032, heapUsed: 67736488 }
2017-06-30 15:25:00 926: memoryUsage { rss: 142073856, heapTotal: 78532608, heapUsed: 67849096 }
Run Code Online (Sandbox Code Playgroud)

起初,我认为它是由许多客户端请求引起的。然而,今天,我在短期内遇到了巨大的流量。顺便说一句,RSS 内存的增加不如流量增加。这很奇怪。

我真的很想解决这个问题。我应该怎么做以及我应该怎么做?

Node.js version: 6.9.4
OS: RHEL 6.8
Run Code Online (Sandbox Code Playgroud)

内存使用情况 在此处输入图片说明

网络输入 在此处输入图片说明

And*_*ras 0

如果您发出的 http 请求有keepAlive超时,请尝试更新的节点。存在影响 v6.8 和 v6.9 的内存泄漏,已在 6.10 中修复(请参阅https://github.com/nodejs/node/pull/9440

编辑:实际上,如果我没记错的话,这也会影响 heapUsed,而不仅仅是 rss。

您可能会泄漏缓冲区吗?缓冲区不在堆上,但会增加 rss。