2015-12-18 18 views
7

2GB(おおよそ)のデータをサーバーの起動時にmongodbからredisにエクスポートすると、エラーがFATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memoryと表示されます。nodejsのデフォルトメモリを増やす方法は?

このコマンドでサーバを起動しました。node --max-old-space-size=4076 server.jsとうまくいきます。しかし、ノードサーバーが常に4GBのメモリーで始まるように、nodejsアプリケーションで構成する必要があります。これを修正する方法を教えてください?おかげさまで

+0

8192、NPMの起動スクリプトでこれを入れてからあなたを停止しているものはありますか? –

+0

こんにちはジェームズ、私はnodejsの初心者です。正確に私がこれを保つ必要がある場所を教えてください。サンプルコードを提供できますか?私はあなたにとても感謝しています。 – anil

+0

コメントに記入したよりも詳細な情報を投稿しました。それがあなたに役立つことを願っています。 –

答えて

0

ノードSomeScript.js --max-古い空間サイズ=ちょうど好奇心のうち

+0

@M Tヘッド:ありがとう – anil

12

1オプション:NPMこれらは代わりで入力するのでnpm startを呼び出してそれを実行するために、次に "スクリプト" セクション

{ 
    //other package.json stuff 

    "scripts":{ 
    "start": "node --max-old-space-size=4076 server.js" 
    } 

} 

の下であなたのpackage.jsonに追加されたスクリプト

https://docs.npmjs.com/misc/scripts

を開始node + args +実行ポイント。

注:あなたはそれを開始以外の何かに名前を付ける場合は、npm run [yourScriptNameHere]コマンドはこれがデフォルトで4ギガバイトを使用するには、ノードを再構成しようとするよりも良い選択肢であること

を実行するようになります(場合でも、知らないその可能なtbh)。それはあなたの設定を移植可能にし、将来コードを見ている人がこれが必要であると理解できるようにして移植性を高めます。

+0

すべてのプロジェクトで永久に変更する方法はありますか? –

+0

@InzamamMalik私が知っていることではありません - または素早くGoogle検索で見つけることができます。私はこれも設計上のものだと信じています。元の投稿には、あるエンドポイントから別のエンドポイントにデータをストリーミングし、すべてをメモリにバッファリングしないようにすることができたユースケースがありました。ノード(または実際にはv8)のメモリ制限を常にオーバーライドする必要がある場合は、おそらく実装上のアーキテクチャ上の問題があります。あなたはまだすべてのプロセスのためにそれを必要と感じる場合、スタートスクリプトは本当に不便そうに見えません。 –

関連する問題