Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 随着时间的推移,节点应用程序逐渐消耗内存_Node.js_Express_Memory Leaks_V8_Digital Ocean - Fatal编程技术网

Node.js 随着时间的推移,节点应用程序逐渐消耗内存

Node.js 随着时间的推移,节点应用程序逐渐消耗内存,node.js,express,memory-leaks,v8,digital-ocean,Node.js,Express,Memory Leaks,V8,Digital Ocean,我刚刚在DigitalOcean上发布了两台Express服务器,以及一个mongodb实例。我用PM2来维持这两个系统的运行 当我使用htop查看内存使用情况时,总使用量通常在220-235mb左右(总共488mb)。我能看到的唯一变化是蓝色条,我假设是缓冲内存,实际使用的绿色内存似乎总是一样的 然而,我看了看DO的图表,在过去的24小时里,内存图一直在缓慢上升,比如说每小时占总内存的0.5%,有时下降,但总体上是上升的,目前它已经在总内存的60-65%左右徘徊了几个小时 这些节点web服务器

我刚刚在DigitalOcean上发布了两台Express服务器,以及一个mongodb实例。我用PM2来维持这两个系统的运行

当我使用htop查看内存使用情况时,总使用量通常在220-235mb左右(总共488mb)。我能看到的唯一变化是蓝色条,我假设是缓冲内存,实际使用的绿色内存似乎总是一样的

然而,我看了看DO的图表,在过去的24小时里,内存图一直在缓慢上升,比如说每小时占总内存的0.5%,有时下降,但总体上是上升的,目前它已经在总内存的60-65%左右徘徊了几个小时


这些节点web服务器上几乎没有流量,但内存一直在缓慢增长。因此,我的问题是,这可能是我的一台服务器内存泄漏,还是v8引擎的本质是以增量方式扩展内存?

如果您考虑内存泄漏,那么为什么不编写2-3个heapdump(时差2-3小时)来检查您的理论呢。那么你就可以肯定地回答你的问题了

您可以使用在磁盘上写入heapdump,然后使用Chrome开发工具进行简单比较。此外,您将看到堆中到底放置了什么


仅供参考:

我知道这是一篇老文章,但你有没有在你的应用程序中发现真正的内存泄漏?还是PM2是问题的一部分?我正在使用PM2管理一组分叉应用程序(运行单节点应用程序代码库),我可以看到内存增长非常缓慢。。。似乎有一些普遍的“清理”,但总体而言,它稳步增加。我使用PM2内存阈值自动/优雅地重新启动,如果它真的很高。我可能只是收集更多的事实,让它运行一个月,看看它有多高。@tamak-我的回答有点晚,但它每天都在上升,然后又下降。它一直这样做,所以我认为这只是垃圾收集的发生。它从未崩溃过!