ZODB pool_size的合理设置

时间:2013-04-09 23:12:37

标签: python connection-pooling zodb

多线程Web应用程序中pool_size调用中ZODB.DB的合理默认值是什么?

离开实际默认值7会给我一些连接WARNING,即使我是唯一一个通过数据库交互处理程序导航的人。是否可以设置一个太高的数字?什么因素决定了究竟要设置什么?

1 个答案:

答案 0 :(得分:3)

游泳池大小只是一个“指南”;超过该尺寸时会记录警告;如果您要使用 double 连接数,则会注册CRITICAL日志消息。这些表示您可能在您的应用程序中使用了太多连接。

当您关闭连接时,池将尝试减少保留的池大小连接数。

您需要将其设置为应用程序中的最大线程数。对于Tornado,我相信使用异步事件而不是几乎专门的线程,这可能更难确定;如果Tornado中可配置的最大并发连接数,则需要将池大小设置为 号。

但是,当您的应用程序扩展到数百或数千个并发连接时,我不确定ZODB将如何执行。到目前为止,我只使用了最多100个并发连接,分布在多个进程甚至机器上(使用ZEO或RelStorage在这些进程中为ZODB提供服务)。

我会说,如果大多数这些连接只读,你应该没事;它同时写在同一个对象上,就可伸缩性而言,这是ZODB的弱点。