我最近在从MongoDB迁移到Postgresql后偶然发现了我的Node.js应用程序中的内存泄漏。代码在Node.js v 0.10.x上运行。代码及其依赖项是100%用JS编写的。我正在使用pg.js
模块访问数据库。
问题在于我看到节点的RSS增长(直到进程崩溃)但不是堆而不是V8外部存储器(通过--trace_external_memory
标志记录)。这就是为什么在V8堆中找不到泄漏的任何工具都没有帮助我。
这种内存泄漏的原因是什么?例如,是否可能存在与Buffer
实例相关的泄漏,这些泄漏不会出现在外部存储器日志中?
答案 0 :(得分:1)
你在运行什么版本的Postgres?相对于JSON函数,9.3.3之前版本中存在内存泄漏。来自9.3.3 release notes:
"修复JSON函数中的内存泄漏问题"
如果可能,请尝试升级到9.3.3或更高版本(9.3.5是撰写本文时最新的稳定版本。)