2011-04-05 57 views
3

当我在我的站点上运行ab(apache基准测试)(SQLAlchemy和postgresql托管在Apache web服务器上)时,SQLAlchemy与postgre建立了很多连接,并且出现了太多的连接错误。Sqlalchemy:当池溢出时连接没有关闭

我追溯了这个问题,发现问题是池(实际上是QueuePool)。

http://www.sqlalchemy.org/docs/core/pooling.html#sqlalchemy.pool.Pool的文档说,如果当池已满时,返回的连接(由于max_overflow允许创建这些额外的连接而打开)将被丢弃和断开连接。 但它似乎连接实际上并没有关闭!他们没有关闭就悄悄退出游泳池。

因此,SQLAlchemy不断打开新的连接,忽略它们(不关闭!)并打开新连接。

增加池大小不是真正的解决方案,问题是其他连接没有关闭。

(用于QueuePool默认设置是pool_size = 5和max_overflow = 10)

回答

0

我认为它的错误和修复...从源代码安装和玩得开心;)