【发布时间】:2017-12-04 00:44:10
【问题描述】:
我有一个 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 }
起初,我认为它是由许多客户端请求引起的。然而,今天,我遇到了短期的巨大流量。顺便说一句,RSS 内存没有增加流量。很奇怪。
我真的很想解决这个问题。我应该怎么做?
Node.js version: 6.9.4
OS: RHEL 6.8
【问题讨论】:
-
您可以尝试检查您的应用程序:nodejs.org/en/docs/inspector。使用
--inspect启动,然后在基于铬的浏览器中打开提供的链接。它可能会为您提供有关消耗内存的信息。 -
您也可以尝试通过在基于 chromium 的浏览器中打开堆转储来调查它们。
-
@vsenko 我已经检查过检查员和堆转储。但我找不到任何问题。堆大小也很稳定。
-
如果 RSS 内存在增加,那么您肯定应该注意到有更多的项目(JS 对象或 C 内存分配)。据我所知,内存消耗增长缓慢,所以你必须等到你能看到差异。