LoginSignup
18
16

More than 5 years have passed since last update.

[heroku] memory quota exceeded のエラーへの対応

Last updated at Posted at 2014-11-07

前置き

Heroku で Rails 4.1, Ruby 2.1.3 アプリを動かしてます。
Papertrail や FlyData でログを回収していたら、やたらエラーが出ることが分かりました。

heroku/web.1: Error R14 (Memory quota exceeded)

Heroku Error Code

Heroku の Error Code 一覧から参照します。

R14
R14 - Memory quota exceeded
A dyno requires memory in excess of its quota (512 MB on 1X dynos, 1024 MB on 2X dynos) . If this error occurs, the dyno will page to swap space to continue running, which may cause degraded process performance.
====

2011-05-03T17:40:10+00:00 app[worker.1]: Working
2011-05-03T17:40:10+00:00 heroku[worker.1]: Process running mem=528MB(103.3%)
2011-05-03T17:40:11+00:00 heroku[worker.1]: Error R14 (Memory quota exceeded)
2011-05-03T17:41:52+00:00 app[worker.1]: Working
R15 - Memory quota vastly exceeded

対応

環境変数 WEB_CONCURRENCY の設定

使用中のDynoの数に合わせる。

$ heroku config:set WEB_CONCURRENCY=1 # Dynoが1の場合

Unicornの設定

webサーバーに Unicorn を使っているので、Unicorn の worker 数を下げることがひとつの解決策の様です。

config/unicorn.rb
worker_processes Integer(ENV["WEB_CONCURRENCY"] || 2) # 2の部分

他にもrubyのバージョンを 2.0 に下げるといいなどあるようですが。。。

References

18
16
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
18
16