3

我在 Postgresql 8.1.21 上运行 Django 项目(使用 Django 1.1.1、Python2.5、psycopg2、Apache2 和 mod_wsgi 3.2)。我们最近遇到了这个可爱的错误:

OperationalError: FATAL: connection limit exceeded for non-superusers

我不是第一个反对这个的人。关于这个错误有很多讨论,特别是关于 psycopg,但其中大部分集中在旧版本的 Django 和/或提供涉及在 Django 本身中编辑代码的解决方案。我还没有找到关于如何解决 Django ORM(或 psycopg,在这种情况下真正负责的那个)留下开放 Postgre 连接的问题的简洁解释。

只需connection.close()在每个视图的末尾添加就可以解决这个问题吗?更好的是,有没有人最终解决了这个问题并解决了这个错误?

编辑:我们后来将 Postgresql 的限制提高到 500 个连接;这防止了错误的出现,而是用过多的内存使用代替了它。

4

1 回答 1

1

这可能是由其他原因引起的。例如,以某种方式配置 Apache/mod_wsgi,理论上它可以接受比数据库本身可以同时接受的更多的并发请求。您是否检查过您的 Apache/mod_wsgi 配置,并将最大客户端的限制与 PostgreSQL 的限制进行比较,以确保尚未完成类似的事情。显然,这假设您已经设法在 Apache 中达到了该限制,并且还取决于如何设置任何数据库连接池。

于 2010-06-15T23:26:29.417 回答