【发布时间】:2015-03-30 01:29:02
【问题描述】:
最近我收到了这个错误,关于连接槽的不足以及许多 Heroku 错误:
H18 - 请求中断 H19 - 后端连接超时 H13 - 连接关闭而没有响应 H12 - 请求超时错误
django.db.utils.OperationalError in /
FATAL: remaining connection slots are reserved for non-replication superuser connections
当前应用设置:
- Django 1.7.4
- Postgres
- Heroku(2x 2 dynos,Standard-2)5ms 响应时间,13rpm 吞吐量
对于应该或不应该在 Django 应用程序中的何处执行查询集,或何时关闭数据库连接,是否有一般的良好做法?
我以前从未遇到过此错误。我在 heroku 上增加了我的 dynos 并分配了更多的 RAM,但我仍然遇到同样的问题。
我在 Stack Overflow 上发现了类似的问题,但我无法弄清楚究竟是什么导致了这个问题。
我在模型方法、视图、装饰器视图、上下文处理器中有查询集。
我的第一个倾向是在某处执行的查询集效率低下,导致连接保持打开状态,最终导致应用程序崩溃,有足够多的人访问该网站。
感谢任何帮助。谢谢。
【问题讨论】:
-
你使用什么 Postgres 计划?
-
Heroku 的标准 2 计划,运行 Postgres 9.3.5。我将研究连接池...
标签: python django postgresql heroku django-queryset