想看看是否有人对诊断我从 django 应用程序的 Heroku 日志中的 Web dynos 收到的 Heroku 错误 R14(超出内存配额)错误有任何建议或进一步阅读。
示例日志是:
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)
一些背景信息、观察结果和我尝试过的事情:
- 大部分内存被 memory_rss 消耗(在 google 上搜索 heroku“memory_rss” 并没有找到太多)
- 缩放或取消缩放 Web dyno 的数量没有任何效果,每个新的 Web dyno 很快就会达到 512M (100%)。但它总是停在 100%,并且不会更高。重新启动测功机只能在 10-15 分钟内缓解该问题。
- 此问题仅影响网络动态。我有一个 celery 调度程序和一个运行良好的 celery worker 测功机。 celery.1 内存总量徘徊在 100MB 左右。
- 这是我来自 New Relic 的实例破折号:
我们还在不同的 Heroku 实例(临时服务器)上运行了完全相同的代码,并且内存从未超过 160MB,因此它似乎是特定于服务器的(至少在某种程度上)。
关于我下一步应该去哪里有什么建议吗?我还可以提供哪些其他有用的信息?谢谢
最佳答案
有点荒谬,但追溯到该应用程序用于用户个人资料头像的 django-avatar 问题。应用中任何页面的响应时间几乎有 50% 花费在模板的 {% block header %} 中,这是没有意义的,结果是 { avatar } 标签。
未在 settings.py 中为 S3 正确配置 AVATAR_STORAGE_DIR
关于django - Heroku Web dyno 运行完全达到内存限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19234853/