调试快速应用程序中的内存泄漏

问题描述

我的 Express 应用程序存在内存泄漏。 RSS 内存从大约 80Mb 开始,随着时间的推移缓慢增长,在几天内达到大约 2-3Gb。我曾尝试使用 --inspect 标志来启动进程并在 chrome 检查器中进行调试,但无法找出确切的问题。在这种情况下,一段时间内的对象分配并不高。正如您在附加的屏幕截图中看到的那样,最高的内存消耗是字符串。任何人都可以指出我解决此泄漏的正确方向吗?

enter image description here

我还附上了 RSS 图。内存下降是由于关闭了服务器。

enter image description here

平台:Linux - Ubuntu 18.04.5

解决方法

嗯,这是一个本机模块 sharp 泄漏内存。它正在用于图像处理的应用程序中。我们需要使用 libjemalloc 运行应用程序,它可以更好地将未使用的内存释放回操作系统。我们可以使用以下命令设置内存分配器:

LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.1