我有一个node.js应用程序支持使用通信内部服务器API进行React服务器呈现。 BTW,应用程序的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 }
起初,我认为它会导致许多客户端请求。然而,今天,我在短期内遇到了巨大的流量。顺便说一下,RSS内存并没有像流量那样增加。这很奇怪。
我真的想解决这个问题。我该怎么做以及做得更多?
Node.js version: 6.9.4
OS: RHEL 6.8
答案 0 :(得分:0)
如果您使用keepAlive
发出http请求并超时,请尝试更新的节点。内存泄漏影响了v6.8和v6.9,修复于6.10(见https://github.com/nodejs/node/pull/9440)
编辑:实际上,如果我没记错,那也会影响heapUsed,而不仅仅是rss。
你可以泄漏缓冲区吗?缓冲区不在堆上,但会增加rss。