节点--max_old_space_size不起作用 [英] node --max_old_space_size is not working

查看:2023
本文介绍了节点--max_old_space_size不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

节点版本:6.9.x

Node Version: 6.9.x

我的应用程序给了我FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory错误.

My application was giving me FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory error.

所以我尝试使用max_old_space_size标志更改内存分配

So I tried changing the memory allocation using max_old_space_size flag

在执行server.js时,我给出了--max_old_space_size=4096参数.

While executing my server.js, I am giving the --max_old_space_size=4096 argument.

但是,它不断崩溃,并返回与以前相同的错误.另外,我注意到崩溃时抛出的错误中的数字.看起来它仍然是默认的1.4 GB分配空间.

However, it keeps crashing with same error as before. Also, I noticed the numbers in the error thrown while crashing. Looks like its still the default allocation of 1.4 GB.

这是我的错误消息:

<--- Last few GCs --->

   84567 ms: Mark-sweep 1375.1 (1401.9) -> 1374.7 (1402.9) MB, 88.7 / 0.4 ms (+ 0.8 ms in 3 steps since start of marking, biggest step 0.5 ms) [allocation failure] [GC in old space requested].
   84648 ms: Mark-sweep 1374.7 (1402.9) -> 1374.7 (1402.9) MB, 81.3 / 0.0 ms [allocation failure] [GC in old space requested].
   84734 ms: Mark-sweep 1374.7 (1402.9) -> 1374.3 (1401.9) MB, 86.0 / 0.0 ms [last resort gc].
   84825 ms: Mark-sweep 1374.3 (1401.9) -> 1374.0 (1400.9) MB, 90.9 / 0.0 ms [last resort gc].


<--- JS stacktrace --->

==== JS stack trace =========================================

Security context: 0x1bf641bcfb39 <JS Object>
    1: slowToString [buffer.js:460] [pc=0x2f7049a5d3d5] (this=0x93e46a2d6b1 <an Uint8Array with map 0x13be78e068d9>,encoding=0x1bf641bdd309 <String[4]: utf8>,start=53,end=3522765)
    2: toString [buffer.js:~488] [pc=0x2f70499b77a6] (this=0x93e46a2d6b1 <an Uint8Array with map 0x13be78e068d9>)
    3: arguments adaptor frame: 3->0
    4: deserialize [/opt/myServer/node_modu...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 1: node::Abort() [node]
 2: 0x10d2fbc [node]
 3: v8::Utils::ReportApiFailure(char const*, char const*) [node]
 4: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [node]
 5: v8::internal::Factory::NewRawOneByteString(int, v8::internal::PretenureFlag) [node]
 6: v8::internal::Factory::NewStringFromOneByte(v8::internal::Vector<unsigned char const>, v8::internal::PretenureFlag) [node]
 7: v8::internal::Factory::NewStringFromUtf8(v8::internal::Vector<char const>, v8::internal::PretenureFlag) [node]
 8: v8::String::NewFromUtf8(v8::Isolate*, char const*, v8::String::NewStringType, int) [node]
 9: node::StringBytes::Encode(v8::Isolate*, char const*, unsigned long, node::encoding) [node]
10: node::Buffer::Utf8Slice(v8::FunctionCallbackInfo<v8::Value> const&) [node]
11: v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&)) [node]
12: 0x9da914 [node]
13: 0x9daffe [node]
14: 0x2f7047a092a7
Aborted (core dumped)

在最后几个GC"部分中,提到的内存大小始终约为1404 MB.我在做什么错了?

In the "Last few GCs" section, the memory size mentioned is always around 1404 MB. What am I doing wrong?

系统是否无法分配更多的内存?

Is the system not able to allocated it any more memory?

推荐答案

请确保将选项放在脚本文件名之前:

Make sure you put the options before your script's filename:

  • 正确:node --max-old-space-size=10000 index.js
  • 不正确:node index.js --max-old-space-size=10000
  • Correct: node --max-old-space-size=10000 index.js
  • Incorrect: node index.js --max-old-space-size=10000

这个让我有一阵子.

这篇关于节点--max_old_space_size不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆