Heroku web dyno正好运行到内存限制?

时间:2013-10-07 21:10:20

标签: django memory-management heroku memory-leaks

想知道是否有人有任何建议或进一步阅读诊断Heroku错误R14(超出内存配额)错误我从我的django应用程序的heroku日志中的网络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消耗(google搜索heroku“memory_rss”并没有多少出现)
  2. 缩放或取消缩放网络dynos的数量没有任何效果,每个新的网络dyno很快达到512M(100%)。它总是停在100%但不会更高。重启dynos只能缓解10-15分钟的问题。
  3. 此问题仅影响网络动态。我有一个芹菜调度员和一个芹菜工人dyno运行正常。 celery.1内存总量大约在100MB左右。
  4. 这是来自New Relic的实例破折号:
  5. enter image description here

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

    关于我下一步应该去哪看的任何建议?我可以提供哪些其他信息会有所帮助?感谢

1 个答案:

答案 0 :(得分:1)

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

在settings.py

中没有为S3正确配置AVATAR_STORAGE_DIR