Node.js内存泄漏,尽pipeHeap + RSS大小不变
根据我的服务器监控,我的内存使用量正在逐渐上升:
正常运行4周后,最终导致问题/崩溃(这是有道理的,因为我在EC2上,m1.large instances => 8GB RAM,RAM似乎每周增加大约1.5 GB)。
如果我重新启动我的node.js应用程序,内存使用情况重置。 然而…我通过process.memoryUsage()
跟踪我的内存使用情况,甚至在1周之后,我看到
{"rss":"693 Mb","heapTotal":"120 Mb","heapUsed":"79 Mb"}
我错过了什么? 显然泄漏是在节点,但过程似乎没有意识到它…
您可以尝试node-memwatch模块,它有助于节点中的泄漏检测和堆比较。
堆差异看起来类似于:
{ "before": { "nodes": 11625, "size_bytes": 1869904, "size": "1.78 mb" }, "after": { "nodes": 21435, "size_bytes": 2119136, "size": "2.02 mb" }, "change": { "size_bytes": 249232, "size": "243.39 kb", "freed_nodes": 197, "allocated_nodes": 10007, "details": [ { "what": "String", "size_bytes": -2120, "size": "-2.07 kb", "+": 3, "-": 62 }, { "what": "Array", "size_bytes": 66687, "size": "65.13 kb", "+": 4, "-": 78 }, { "what": "LeakingClass", "size_bytes": 239952, "size": "234.33 kb", "+": 9998, "-": 0 } ] }
- Cookies在本地主机上运行良好,但不适用于VPS
- nodejsencryption模块,hash.update()将所有input存储在内存中
- Node.js res.setHeader('content-type','text / javascript'); 推送响应JavaScript作为文件下载
- JavaScript:函数执行的顺序
- 当使用node.js async forEachSeries时,是否有等价的语句来“继续”?
- 哪一个首先触发setTimeout()创build或早些时候计划?
- 在React.js中通过网站控制树莓派?
- 在节点http-proxy后面航行
- 使用Sinon在javascript中扼杀Redis交互