6

想看看是否有人对诊断 Heroku 错误 R14(超出内存配额)错误有任何建议或进一步阅读我从我的 django 应用程序的 heroku 日志中的 web dynos 得到的错误。

一个示例日志是:

heroku[web.1]: source=web.1 dyno=heroku.16810889.deec8406-c082-445d-a047-d0026849fd5e sample#load_avg_1m=0.01 sample#load_avg_5m=0.03 sample#load_avg_15m=0.04
heroku[web.1]: source=web.1 dyno=heroku.16810889.deec8406-c082-445d-a047-d0026849fd5e sample#memory_total=512.06MB sample#memory_rss=511.84MB sample#memory_cache=0.00MB sample#memory_swap=0.22MB sample#memory_pgpgin=380186624pages sample#memory_pgpgout=364599pages
heroku[web.1]: Process running mem=512M(100.0%)
heroku[web.1]: Error R14 (Memory quota exceeded)

一些背景信息、观察和我尝试过的事情:

  1. 大部分内存都被 memory_rss 消耗(谷歌搜索 heroku“memory_rss”并没有出现太多)
  2. 缩放或取消缩放 web dyno 的数量没有效果,每个新的 web dyno 很快就会达到 512M (100%)。它总是在 100% 处停止,并且不会更高。重新启动 dynos 只能缓解 10-15 分钟的问题。
  3. 这个问题只影响网络测功机。我有一个 celery scheduler 和一个 celery worker dyno 运行良好。celery.1 内存总量徘徊在 100MB 左右。
  4. 这是我来自 New Relic 的实例破折号:

在此处输入图像描述

我们还在不同的 Heroku 实例(临时服务器)上运行完全相同的代码,内存从未超过 160MB,因此它似乎是特定于服务器的(至少在某种程度上)。

关于我接下来应该看哪里的任何建议?我还能提供哪些其他有用的信息?谢谢

4

1 回答 1

1

有点荒谬,但将问题追溯到应用程序用于用户个人资料头像的 django-avatar。几乎 50% 的应用程序中任何页面的响应时间都花在了模板的 {% block header %} 上,这没有任何意义,结果是 { avatar } 标签。

在 settings.py 中没有为 S3 正确配置 AVATAR_STORAGE_DIR

于 2013-10-08T16:17:02.133 回答