プログラミング

[Node.js]ビルド時にメモリ不足になる場合の対処法

プログラミング
この記事は約2分で読めます。
スポンサーリンク

Angularで開発している際に「ng build --prod」コマンドを利用してソースコードをビルドする必要があるのですが、プロジェクトの規模が大きくなるとメモリ不足になりビルドに失敗してしまうことがあります。

サーバーはAWSを利用していたので、メモリ不足とのことなのでEC2のインスタンスを順次スケールアップしていたのですが、どれだけスケールアップしてもメモリ不足になる現象が発生したので、その原因と対処法について調査を行いました。

スポンサーリンク

メモリ不足の原因

nodeのビルド実行時のメモリ使用量はデフォルトだと「約1.7G」みたいでこれを増やさないとビルド実行時にメモリ不足になるみたいです。

AWSEC2のインスタンスをスケールアップしてビルド成功していた間は、インスタンスのメモリが0.5G1.0G2.0Gのようにnodeのビルド実行時のデフォルトのメモリ使用量以下のメモリしか開放されていませんでしたが、プロジェクトの規模が大きくなかったのでインスタンスのスケールアップでビルドを成功させることができていたようです。ところがプロジェクトの規模が大きくなるとメモリ使用量の上限以上のメモリがビルド時に必要となり、1.7G以上のメモリ領域を確保できるインスタンスになるとどれだけインスタンスをスケールアップしてもビルド実行が失敗してしまっていました。

解決方法

nodeの設定を行うことで手動でビルド実行時のメモリ使用量を定義することができます。「.bashrc」などのファイルに下記の設定を追加することでメモリ使用量が増やせます。

export NODE_OPTIONS=--max_old_space_size=4096

数値のところは適宜環境に応じて変更してください。

下記コマンドも忘れずに実行して設定を反映させます。

source ~/.bashrc

最後に

もし、Angularの開発などでビルド実行時にメモリ不足でビルド失敗しているのであれば、こちらの設定を追加してみてください。

スポンサーリンク
スポンサーリンク
KoEをフォローする
CodeLab

コメント

タイトルとURLをコピーしました