1
0

ある時、このようなログが発生してNode.jsが頻繁に落ちるようになりました。

FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory

↓前後のログ
4186e71daa6a1d7dbcd1acf644873fb0.png

エラーログを読むと、Node.jsのヒープ内領域が足りていないと書いてありました。

調べてみると、--max-old-space-sizeの値をデフォルトより大きくするといいとの情報が出てきました。

設定はNode.jsの起動コマンドに--max-old-space-size=値を付与するか、環境変数に下記の通り指定すると設定が可能です。

export NODE_OPTIONS="--max-old-space-size=値"

デフォルトのヒープサイズは1400MBという記事を見つけましたが、他の値がデフォルトになっている場合もあるそうです。
デフォルト値はこのコマンドで確認が可能です。

node -e 'console.log(Math.floor(v8.getHeapStatistics().heap_size_limit/1024/1024))'

適切な値については、デフォルト値から徐々に上げてログをチェックするのがいいのではないかと思います。

以前、エラーが出たときはデフォルト値が1400MBだったため、2048MBを試したところ解消されず、最終的に--max-old-space-size=3072にすると解消されました。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0