连接池跨进程共享?

时间:2012-07-09 19:35:35

标签: apache sqlalchemy

当有足够的请求发生时,我的网络应用程序用尽了连接到数据库的插槽。尽管设置它运行似乎是一个保守的连接池大小,我限制了进程数,线程。我是否更正了连接池是跨线程共享的,而不是进程?什么是选择连接池大小,进程数和线程数的良好组合,同时避免数据库连接耗尽的好策略?

我看到的错误:

  

OperationalError:(OperationalError)致命错误:剩余连接   插槽保留用于非复制超级用户连接

/etc/postgresql/9.1/main/postgresql.conf:

   max_connections = 100

app.ini:

   sqlalchemy.pool_size = 1
   sqlalchemy.max_overflow = 5

Apache配置:

   WSGIDaemonProcess test1 processes=5 threads=10 maximum-requests=10000
   WSGIProcessGroup test1

查看流程: $ ps aux | grep postgres | wc 这可以在合理负载下增加到102并保持在那里,尽管许多连接处于空闲状态,并且出现错误。

0 个答案:

没有答案