错误R14(超出内存配额)+ Heroku + Passenger

时间:2016-12-01 14:35:22

标签: ruby-on-rails ruby-on-rails-4 heroku redis heroku-postgres

2016-12-01T14:26:14.421530+00:00 heroku[run.6714]: Error R14 (Memory quota exceeded)
2016-12-01T14:25:51+00:00 app[heroku-redis]: source=REDIS sample#active-connections=1 sample#load-avg-1m=0.07 sample#load-avg-5m=0.09 sample#load-avg-15m=0.075 sample#read-iops=0 sample#write-iops=0 sample#memory-total=15664468.0kB sample#memory-free=11956144.0kB sample#memory-cached=2248760.0kB sample#memory-redis=1421856bytes sample#hit-rate=1 sample#evicted-keys=0
2016-12-01T14:26:35.660410+00:00 heroku[run.6714]: Process running mem=780M(152.4%)
2016-12-01T14:26:35.660501+00:00 heroku[run.6714]: Error R14 (Memory quota exceeded)

我在heroku日志上遇到上述错误。我不理解解决方案以及发生此错误的原因。

我的服务器确认很高 -

  1. 专业Dynos
  2. 2X工人
  3. Premium Redis计划 - (15美元)
  4. 数据库是 - 标准4计划
  5. 但仍然收到此错误

1 个答案:

答案 0 :(得分:2)

我建议您使用Name.all.each do |block|查看代码并将其更改为Name.find_each do |block|。这样,您可以通过不立即加载整个模型来节省内存。

还尝试运行一些基准测试,以便找到导致R14错误的内存泄漏

此链接为您提供了更多信息https://devcenter.heroku.com/articles/ruby-memory-use#memory-leaks