Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Node JS Process out of memory [closed]

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/

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 ?

like image 518
Faizan Avatar asked May 29 '16 19:05

Faizan


People also ask

How to solve the memory limit issue in Node JS?

This error occurs when the memory allocated for the execution application is less than the required memory when run application. By default the memory limit in Node.js is 512 mb, to solve this issue you need to increasing the memory limit use command —- max-old-space-size .It can be avoid the memory limit issue. That’s it. Happy coding!

Why does my NodeJS application keep killing itself?

If you have seen the error above, it means your NodeJS application has ran out of memory, it has consumes more memory than what is allocated and that eventually caused it to kill itself.

What is the Max old space size for Node JS?

It is recommended to always explicitly set the --max-old-space-size instead of relying on default imposed by Node.js, as that can change without notice in a newer Node.js version. On a machine with 2 GB of memory, consider setting this to 1536 (1.5 GB) to leave some memory for other uses and avoid memory swapping.


1 Answers

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

node --max_old_space_size=8192 --optimize_for_size --max_executable_size=4096 --stack_size=4096

You can use it like this:

node --max_old_space_size=8192 --optimize_for_size --max_executable_size=4096 --stack_size=4096 yourfile.js

like image 171
rahil sharma Avatar answered Nov 12 '22 03:11

rahil sharma