ある時、このようなログが発生してNode.jsが頻繁に落ちるようになりました。
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
エラーログを読むと、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
にすると解消されました。
参考