LoginSignup
0
1

More than 3 years have passed since last update.

AWS S3に複数画像投稿時にnodeのメモリーが足りなくなった

Last updated at Posted at 2019-09-24

rails FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

AWSにCapistrano3を使いながらアプリを自動デプロイしていた時、突然こんなエラーが、、、、、

rails FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

なんじゃこりゃ!? メモリがない?

assets precompileを行なっていた時なので、画像のアップロードに問題があるということはわかったのですが、もしメモリに問題があるのなら、AWSに金かけなきゃいけないのかな。。。なんて思っていました。

しかし解決法をググりまくっていたら、同じ問題が怒っていた方のブログに出会うことができました。

そしてこちらのブログでも説明されている通り、サーバーのメモリは増やすことができます。

メモリの増やし方に関してはこちらのQiita記事に詳しく載っています。

解決法が見つかったので早速サーバーのSWAP領域を1GB増やしていきましょう

1.本番サーバーのインスタンスにて下記を実行

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
sudo mkswap /swapfile
sudo swapon /swapfile

これにより1GBのSWAP領域が生成されます。

2.SWAPの設定

次に下記のコマンドを入力して、SWAPの設定画面が開きます

sudo vim /etc/fstab

その後設定画面の中に以下のように1行挿入

LABEL=/     /           ext4    defaults,noatime  1   1
tmpfs       /dev/shm    tmpfs   defaults        0   0
devpts      /dev/pts    devpts  gid=5,mode=620  0   0
sysfs       /sys        sysfs   defaults        0   0
proc        /proc       proc    defaults        0   0

/swapfile   swap   swap    defaults       0   0 👈この1行を挿入

これが終わったら一度Ec2インスタンスを再起動し、また一からサーバーを立ち上げ、Capistrano
を実行するとassets precompileに成功し、無事デプロイができました!!

インフラ関係って本当に知らないと本当に苦労しますね.....

もし間違っている点などがあればお申し付けください!

参考

http://tech-savvy.hatenablog.com/entry/2016/04/07/000102
https://qiita.com/snowsunny/items/aaeacf7aecb0121948d4

0
1
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
0
1