致命错误:接近堆限制的标记压缩无效分配失败 - 使用 PM2 处理大文件时 JavaScript 堆内存不足

问题描述 投票:0回答:1

我有一个相当庞大的数据库,大约有 200 万条记录,我在 NodeJs + Express 中创建了一个分页 API,在其中查询数据库。

我正在使用 PM2 使用以下命令启动我的应用程序:

pm2 start app.js --node-args="--max_old_space_size=8192"

但是仍然收到同样的错误。

有什么好方法可以不再收到此信息?我的服务器有 24GB RAM,我想我可以增加更多,但我用 4,6 和现在 8GB 进行了测试,但没有任何效果。

有没有可以优化的地方?!

node.js api express
1个回答
0
投票

只有当您知道应用程序将使用比默认分配大小更多的内存时,增加

max_old_space_size
才是一个解决方案。

您应该寻找的第一个地方是您的代码。检查是否有内存泄漏。喜欢:

  • 将所有查询的记录缓存在内存中,并且不为其定义限制。
  • 您是否正在将一个大文件全部读入内存?
© www.soinside.com 2019 - 2024. All rights reserved.