【问题标题】:Django/Postgres: FATAL: remaining connection slots are reserved for non-replication superuser connectionsDjango/Postgres:致命:剩余的连接槽保留用于非复制超级用户连接
【发布时间】: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


【解决方案1】:

我意识到我在我的 procfile 中使用了 django 服务器。我不小心将其注释掉并将其提交给 heroku 而不是使用 gunicorn。一旦我在同一个 Heroku 计划上切换到 gunicorn,问题就解决了。

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

【讨论】:

    猜你喜欢
    • 2021-01-11
    • 1970-01-01
    • 2020-09-22
    • 2018-05-19
    • 2019-03-12
    • 1970-01-01
    • 2020-04-26
    • 2016-11-28
    • 2012-08-04
    相关资源
    最近更新 更多