使用Ulimit运行Node时堆设置中的致命进程OOM

时间:2019-05-01 07:41:53

标签: node.js ubuntu ulimit

我试图限制可用于进程的ram数量,所以我要发出ulimit -v 512000命令。

运行任何node文件都会返回:

#
# Fatal process OOM in heap setup
#

Illegal instruction (core dumped)

我尝试在node上运行--max_old_space_size=400进程,但没有运气。

如果您想复制此内容,只需创建一个test.js

console.log("Hello from ulimit test!")

并打开一个新终端:

$ ulimit -v 512000
$ node test.js

#
# Fatal process OOM in heap setup
#

Illegal instruction (core dumped)

$ node --max_old_space_size=400 test.js 

#
# Fatal process OOM in heap setup
#

Illegal instruction (core dumped)

我正在Ubuntu 18上运行Node v8.10.0。

1 个答案:

答案 0 :(得分:0)

ulimit限制了可用的虚拟内存量,显然节点至少需要1GB。

因此,如果您运行ulimit -v 1024000,则可以运行node,但是您只能访问80mb的内存。

--max_old_space_size=400基本上没有用。