2016-05-29 19 views
0

永久JSを使用してノードJSサーバーを継続的に実行していますが、サーバーがクラッシュしてサイトがしばらくダウンすることがあります。ノードJSプロセスがメモリ不足

は、私は永遠にログを見て、ここでは示しています

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ファイルで見つかったいくつかのより多くのエラーです:

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) 

任意のアイデアをこれを修正する方法は?エラーが見つからないようですか?

+0

メモリリークを探す必要があります –

+0

@AlexeyTenメモリリークを調べましたが、どのようにメモリリークの問題を修正できますか?私は私の質問で、より多くのエラーログを追加しました。 – Faizan

+0

このリンクはうまくいくはずですhttps://www.google.com/search?q=nodejs+debug+memory+leak –

答えて

2

あなたは

ノード--max_old_space_size = 8192 --optimize_for_size --max_executable_size = 4096 --stack_size = 4096、これを使用して、JSノードのメモリ制限を増やすしようとすることができます

ノード--max_old_space_size = 8192 --optimize_for_size --max_executable_size = 4096 --stack_size:あなたはこのようにそれを使用することができます= 4096 yourfile.js

+0

ここではどのような記憶がありますか?アプリケーションの実行中にNode JSが使用するサーバーのインメモリはありますか?私のホスティング料金に悪影響がありますか?私のアプリはAWS EC2にあります。 端末でこのコマンドを実行する必要があることを教えてください。私は永遠に私のノードのアプリケーションを実行するために今使用しているので。 permanaentylがデフォルトメモリを増やす方法はありますか? – Faizan

+0

あなたはこれを永遠にstart -c "--max_old_space_size = 8192 --optimize_for_size --max_executable_size = 4096 --stack_size = 4096" yourfile.js –

+0

と同じように使うことができます。 -max_old_space_size = 8192 --optimize_for_size --max_executable_size = 4096 --stack_size = 4096 "index.js メッセージは永遠に実行されますが、私のウェブサイトはまだダウンしています。しかし、いつもindex.jsを起動してやると動作します。 コマンドパラメータでは動作しない原因は何ですか? PLZヘルプ – Faizan