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

Chr*_* B. 6 django memory-leaks memory-management heroku

想知道是否有人有任何建议或进一步阅读诊断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)
Run Code Online (Sandbox Code Playgroud)

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

  1. memory_rss正在消耗大部分内存(谷歌搜索heroku"memory_rss"并没有多少出现)
  2. 缩放或取消缩放网络dynos没有任何效果,每个新的网络dyno很快达到512M(100%).它总是停在100%但不会更高.重新启动dynos只能缓解10-15分钟的问题.
  3. 此问题仅影响网络动态.我有一个芹菜调度员和一个芹菜工人dyno运行正常.celery.1内存总量在100MB左右徘徊.
  4. 这是来自New Relic的我的实例短划线:

在此输入图像描述

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

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

Chr*_* B. 1

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

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