Python Django/Postgres:致命:剩余的连接插槽保留给非复制超级用户连接

Python Django/Postgres:致命:剩余的连接插槽保留给非复制超级用户连接,python,django,postgresql,heroku,django-queryset,Python,Django,Postgresql,Heroku,Django Queryset,最近,我收到了一个错误,该错误与许多Heroku错误一起出现在连接插槽中的不足有关: H18 - Request Interrupted H19 - Backend connection timeout H13 - Connection closed without response H12 - Request timeout H18-请求中断 H19-后端连接超时 H13-连接关闭,无响应 H12-请求超时 错误 django.db.utils.OperationalError in/ 致命:

最近,我收到了一个错误,该错误与许多Heroku错误一起出现在连接插槽中的不足有关:

H18 - Request Interrupted H19 - Backend connection timeout H13 - Connection closed without response H12 - Request timeout H18-请求中断 H19-后端连接超时 H13-连接关闭,无响应 H12-请求超时 错误
django.db.utils.OperationalError in/

致命:剩余的连接插槽保留给非复制超级用户连接

当前应用程序设置:
  • Django 1.7.4
  • 博士后
  • Heroku(2x2 dynos,标准2)5ms响应时间,13rpm吞吐量
对于在Django应用程序中应该或不应该在何处执行查询集,或者何时关闭数据库连接,是否有通用的良好做法

我以前从未经历过这种错误。我已经在heroku上增加了dynos,并分配了更多的RAM,我仍然遇到同样的问题

我在堆栈溢出问题上也发现了类似的问题,但我还没有弄清楚到底是什么导致了这个问题

我在模型方法、视图、装饰器视图和上下文处理器中有查询集

我的第一个倾向是,在某个地方执行了一个低效的查询集,导致连接保持打开状态,最终导致应用程序崩溃,有足够多的人访问该网站


感谢您的帮助。谢谢。

我意识到我在procfile中使用的是django服务器。我不小心把它注释掉了,并把它交给了heroku,而不是使用gunicorn。一旦我按照同一个heroku计划转向gunicorn,问题就解决了


使用生产级应用服务器确实会带来很大的不同。也不要在一天中容易出错的疯狂时刻编写代码。

你使用什么Postgres计划?Heroku的标准2计划,运行Postgres 9.3.5。我将研究连接池。。。