本文介绍了Node JS进程内存不足的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 Forever JS 来持续运行我的节点 JS 服务器,但偶尔会出现服务器崩溃和站点关闭一段时间的情况.

I am using forever JS to run my node JS server continuously, however occasionally the server crashes and site goes down for some time.

我查看了永久日志,这里显示:

I looked at the forever logs, and here it shows:

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory

<--- Last few GCs --->

35251732 ms: Mark-sweep 687.6 (219898.0) -> 687.6 (527360.0) MB, 13522.0 / 0 ms [allocation failure] [scavenge might not succeed].
35267178 ms: Mark-sweep 687.6 (527360.0) -> 687.6 (940128.0) MB, 15445.8 / 0 ms [allocation failure] [scavenge might not succeed].
35282842 ms: Mark-sweep 687.6 (940128.0) -> 687.6 (1352896.0) MB, 15664.3 / 0 ms [last resort gc].
35298326 ms: Mark-sweep 687.6 (1352896.0) -> 687.6 (1765664.0) MB, 15483.8 / 0 ms [last resort gc].


<--- JS stacktrace --->

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

Security context: 0x82f80fa5a91 <JS Object>
    2: decode(aka utf8decode) [/home/ubuntu/chat2/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-parser/node_modules/utf8/utf8.js:~200] [pc=0x19db242bd813] (this=0x1ea709fcc4c9 <an Object with map 0xedc29877b11>,byteString=0x1bd8952f0461 <Very long string[8570662]>)
    3: decodePacket [/home/ubuntu/chat2/node_modules/socket.io/node_modules/engine.io/node_modules/engine.io-...

error: Forever detected script was killed by signal: SIGABRT
error: Script restart attempt #9
Server running at http://localhost:1337/

以下是我在 console.log 文件中发现的更多导致节点崩溃的错误:

Here are some more errors I found in my console.log file causing node to crash:

error: Forever detected script was killed by signal: SIGKILL
error: Script restart attempt #11


Error: read ECONNRESET
    at exports._errnoException (util.js:870:11)
    at TCP.onread (net.js:544:26)

RangeNotSatisfiableError: Range Not Satisfiable
    at SendStream.error (/home/ubuntu/chat2/node_modules/express/node_modules/connect/node_modules/serve-static/node_modules/send/index.js:245:31)
    at SendStream.send (/home/ubuntu/chat2/node_modules/express/node_modules/connect/node_modules/serve-static/node_modules/send/index.js:564:19)
    at onstat (/home/ubuntu/chat2/node_modules/express/node_modules/connect/node_modules/serve-static/node_modules/send/index.js:624:10)
    at FSReqWrap.oncomplete (fs.js:82:15)

知道如何解决这个问题吗?我似乎找不到错误?

Any idea on how to fix this? I can't seem to find the error ?

推荐答案

你可以尝试使用这个来增加 node js 中的内存限制,

You can try to increase the memory limit in node js using this,

节点 --max_old_space_size=8192 --optimize_for_size--max_executable_size=4096 --stack_size=4096

你可以这样使用它:

节点 --max_old_space_size=8192 --optimize_for_size--max_executable_size=4096 --stack_size=4096 yourfile.js

这篇关于Node JS进程内存不足的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-11 01:33