【问题标题】:Heroku R14 error & Amazon S3 & RefineryCMSHeroku R14 错误 & Amazon S3 & RefineryCMS
【发布时间】:2016-07-08 16:03:27
【问题描述】:

我目前正在使用在 Heroku(免费版)上设置的 RefineryCMS 与 Amazon S3 帐户集成来存储和提供图像。

我继续在 Ruby (MRI) 中获得超过 R14 内存配额。它只发生在我有 Rails 代码为我的文件提供服务的页面上(例如https://scape-cms.herokuapp.com/projects)。我通过 Refinery CMS 直接插入图像的其他页面(例如https://scape-cms.herokuapp.com/contact-page)很好。

这是我从 Heroku 获得的重复错误日志:

2016-07-08T15:56:50.216836+00:00 heroku[web.1]: source=web.1 dyno=heroku.52592468.db487335-3609-4b63-b664-46863302a117 sample#load_avg_1m=0.00 sample#load_avg_5m=0.00 sample#load_avg_15m=0.02
2016-07-08T15:56:50.217679+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
2016-07-08T15:56:50.216975+00:00 heroku[web.1]: source=web.1 dyno=heroku.52592468.db487335-3609-4b63-b664-46863302a117 sample#memory_total=531.41MB sample#memory_rss=429.12MB sample#memory_cache=0.00MB sample#memory_swap=102.28MB sample#memory_pgpgin=496494pages sample#memory_pgpgout=386638pages sample#memory_quota=512.00MB
2016-07-08T15:56:50.217679+00:00 heroku[web.1]: Process running mem=531M(103.8%)
2016-07-08T15:57:11.876186+00:00 heroku[web.1]: source=web.1 dyno=heroku.52592468.db487335-3609-4b63-b664-46863302a117 sample#load_avg_1m=0.00 sample#load_avg_5m=0.00 sample#load_avg_15m=0.02
2016-07-08T15:57:11.876186+00:00 heroku[web.1]: source=web.1 dyno=heroku.52592468.db487335-3609-4b63-b664-46863302a117 sample#memory_total=531.59MB sample#memory_rss=429.31MB sample#memory_cache=0.00MB sample#memory_swap=102.28MB sample#memory_pgpgin=496542pages sample#memory_pgpgout=386638pages sample#memory_quota=512.00MB
2016-07-08T15:57:11.878013+00:00 heroku[web.1]: Process running mem=531M(103.8%)
2016-07-08T15:57:11.878528+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
2016-07-08T15:57:31.826483+00:00 heroku[web.1]: source=web.1 dyno=heroku.52592468.db487335-3609-4b63-b664-46863302a117 sample#load_avg_1m=0.00 sample#load_avg_5m=0.00 sample#load_avg_15m=0.02
2016-07-08T15:57:31.826483+00:00 heroku[web.1]: source=web.1 dyno=heroku.52592468.db487335-3609-4b63-b664-46863302a117 sample#memory_total=531.59MB sample#memory_rss=429.31MB sample#memory_cache=0.00MB sample#memory_swap=102.28MB sample#memory_pgpgin=496952pages sample#memory_pgpgout=387048pages sample#memory_quota=512.00MB
2016-07-08T15:57:31.827268+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
2016-07-08T15:57:53.071612+00:00 heroku[web.1]: source=web.1 dyno=heroku.52592468.db487335-3609-4b63-b664-46863302a117 sample#memory_total=531.77MB sample#memory_rss=427.56MB sample#memory_cache=0.00MB sample#memory_swap=104.21MB sample#memory_pgpgin=497018pages sample#memory_pgpgout=387562pages sample#memory_quota=512.00MB
2016-07-08T15:57:53.071535+00:00 heroku[web.1]: source=web.1 dyno=heroku.52592468.db487335-3609-4b63-b664-46863302a117 sample#load_avg_1m=0.00 sample#load_avg_5m=0.00 sample#load_avg_15m=0.02
2016-07-08T15:57:53.072554+00:00 heroku[web.1]: Process running mem=531M(103.9%)
2016-07-08T15:57:53.072554+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)

我的源代码可以在这里找到: github.com/lltheis/scape-cms。

我不知道从哪里开始 - 从概念上讲,我似乎应该能够提供存储在我的 S3 上的图像,因为它们是 164KB 到 500KB - 所以它们应该在限制之下。但是我的进程在某个地方达到了 512MB 的限制。

谢谢!

【问题讨论】:

    标签: ruby-on-rails heroku amazon-s3 refinerycms


    【解决方案1】:

    问题可能是多方面的:

    1. Dragonfly 使用 imagemagick 可能会消耗大量内存: http://astrails.com/blog/2014/7/28/dragonfly-imagemagick-and-memory-bloat

    可以通过添加这个来解决:

    # config/initializers/dragonfly.rb
    Dragonfly.app.configure do
      plugin :imagemagick, identify_command: "identify -limit memory 0 -limit map 0"
    end
    
    1. 可能是缓存策略有问题,您在生产中使用什么?
    2. 这可能是您 Heroku 应用程序当前使用的工作人员数量的问题: https://devcenter.heroku.com/articles/ruby-memory-use

    我希望这会有所帮助,很难找到关于 R14 错误的问题。

    【讨论】:

      猜你喜欢
      • 2018-08-24
      • 1970-01-01
      • 2011-12-27
      • 2017-07-29
      • 2018-01-15
      • 2017-04-16
      • 1970-01-01
      • 2013-05-03
      • 2013-10-01
      相关资源
      最近更新 更多