我有一个NodeJS服务器在运行,它的内存消耗每天都在增加。
我在互联网上搜索,找出问题的来源,所以我使用node-heapdump模块来分析内存。
服务器开始时的文件大小几乎与我几天后的大小相同,而PM2告诉我使用的内存明显增加。
随后,我知道缓冲区存储在V8的堆之外“缓冲区类似于整数数组,但对应于V8堆外部的原始内存分配”,所以我猜我的内存泄漏问题来自于我使用了大量缓冲区的事实,事实就是如此。
问题是,我想我确切知道问题在哪个文件中,但我不知道如何解决它。
以下是文件https://hastebin.com/apicituleb.js的代码
这是"creatImage“函数的结果示例

模块"ressourcesManager“包含我的应用程序中需要的所有资源,所以有很多缓冲区,但我不认为问题来自于我在启动时加载了它们。模块代码"ressourcesManager“非常粗糙,但如果您想看一下https://hastebin.com/neyanuhema.php,下面是代码
自从我遇到这个我无法解决的问题已经有一段时间了,所以如果人们愿意花一点时间来帮助我,我将非常感激。
PS:如果你想要堆快照文件,它们是:
开始:https://drive.google.com/open?id=1LDwk8y3cygGDrSr1z8xV__PboWiEtQHt
完:https://drive.google.com/open?id=1s4WXgia2CM4rb3fd6wCdVxOLgiS9Oahz
发布于 2018-06-08 22:08:33
也许node-oom-heapdump模块可以提供帮助?它提供了与node-heapdump相同的功能,但当内存不足即将发生时(这是进行堆转储最有趣的时刻),它还会自动创建一个堆转储。也许这个堆可以提供更多的洞察力?
https://stackoverflow.com/questions/50251965
复制相似问题