增加node.js的内存大小不会产生影响

时间:2019-05-24 12:15:10

标签: javascript node.js

我的用例

  • 我有一台运行node.js 8版本的Linux服务器
  • 该节点的目的是收集外部worker数组并将其组成1个大响应
  • 刷新对网络的响应。

我的问题
我的内存堆在某个时候运行了,进程中断了。这是我得到的错误

  

1 |代理| <---后几个GC --->
  1 |代理| [11552:0x4063010] 143107毫秒:清除4416.2(4694.3)-> 4401.6(4694.3)MB,4.0 / 0.0毫秒分配失败
  1 |代理| [11552:0x4063010] 143373毫秒:清除4416.2(4694.3)-> 4401.7(4694.3)MB,4.2 / 0.0毫秒分配失败
  1 |代理| [11552:0x4063010] 143639 ms:清除4416.2(4694.3)-> 4401.6(4694.3)MB,4.1 / 0.0 ms分配失败
  1 |代理| [11552:0x4063010] 143904毫秒:清除4416.2(4694.3)-> 4401.6(4694.3)MB,3.6 / 0.0毫秒分配失败
  1 |代理| <--- JS堆栈跟踪--->
  1 |代理| ==== JS堆栈跟踪========================================
  1 |代理|安全上下文:0x31ced5525ee1   1 |代理| 1:_callee37 $ [/StackData/bd/tools/proxy/server.js:~3482]
     [pc = 0x22e6d2a49018](this = 0x1b549e48b339,_context37 = 0x325a9be822f1)   1 |代理| 3:tryCatch(aka tryCatch)[/StackData/bd/node_modules/babel-polyfill/node_modules/regenerator-runtime/runtime.js:65] [bytecode = 0x170c5857ef81 offset = 15](this = 0x3b92b1582311
  ,fn = 0x325a9be82201 <...
   1 |代理| 24-05 11:53:52.997:致命错误:无效的数组长度分配失败-JavaScript堆内存不足

到目前为止我尝试过的事情

  • 我使用process.memoryUsage()验证了错误发生前我的堆大小是多少
      

    内存位于:{“ rss”:5161619456,“ heapTotal”:4920782848 ,“ heapUsed”:4615629928,“ external”:10992199}

  • 我将启动配置--max_old_space_size=8192添加到了启动脚本中,但无济于事,从以前的日志打印中可以看出,这是完整的启动命令:
    /usr/bin/pm2 --log-date-format 'DD-MM HH:mm:ss.SSS' -x -i 1 start node --node-args="--max_old_space_size=8192 -r babel-register" /StackData/bd/tools/proxy/proxy.js
  • 确认我正在使用node --version的节点8.9.4版本
  • 我检查了一些答案this one for example,但没有找到更好的主意

还有其他想法我还能做什么吗?

0 个答案:

没有答案