致命错误:JS分配失败 - 进程内存不足 异常(核心已转储)- Node.js

3
我在运行一个Node.js进程时遇到了“致命错误:JS分配失败 - 进程内存不足Aborted (core dumped)”的错误,尽管我使用了以下命令: node --max-old-space-size=8192 run.js 我使用的是v10.25版本。这段代码从AWS S3下载数据(大小为2GB),并进行一些数据操作。
为什么Node.js会耗尽内存?如何在没有致命错误的情况下运行这个Node.js进程?感谢任何帮助。 编辑1: 使用以下代码检查: console.log(util.inspect(process.memoryUsage())); 在崩溃之前输出如下: { rss: 1351979008, heapTotal: 1089684736, heapUsed: 1069900560 }

你是否尝试过使用io.js或node v0.12.x运行你的脚本?这两个版本所附带的v8版本应该包含修复程序,可以正确设置资源限制 - mscdex
另外,你是将整个2GB存储在内存中吗?如果是,那真的有必要吗? - mscdex
@mscdex 是的,我正在内存中存储2GB数据,需要进行一些数据操作并将其发送到另一个数据库。 - azero0
1个回答

4

对于遇到这个问题的任何人:

我安装了Node.js v12.02版本,并使用了--max-old-space-size=8192

在v10.25版本中并不起作用。


--max-old-space-size=8192会抛出“--max-old-space-size=8192:命令未找到”的错误。请更新答案并解释原因。 - vamsikrishnamannem
2
@vamsi 这是一个控制台参数。node --max-old-space-size=8192 app_name - Matt Munson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接