在我们的组织中,由于政策原因,PostgreSQL数据库的连接数限制为20。当多个应用程序使用连接池时,这往往会产生问题,因为其中许多应用程序打开了其全部连接套件并将它们保持空闲状态。
一旦有超过几个应用程序与数据库联系,我们就会用尽连接,正如您所期望的那样。
池化行为是一个新事物;直到现在,我们通过通过基于Web的DB网关(?!)串行访问来管理池化连接,或者根本不进行池化。因此,我必须一遍又一遍地解释(字面上,一个人在项目期间提交了5个故障单),池化是如何工作的。
我想要以下之一:
1.提供一个坚实、无可辩驳的理由,以增加可用连接数,以便与池协作。如果是这样,安全限制是多少?是否有理由将限制保持在20?
2.提供一个理由,说明我错了,我们应该减少池的大小或完全消除它们。
值得一提的是,以下是参与其中的组件。如果其中一个配置方式相关,请发表意见:
DB:PostgreSQL 8.2。不,我们不会在此过程中升级它。
Web服务器:Python 2.7、Pylons 1.0、SQLAlchemy 0.6.5、psycopg2
这复杂性还受到一个事实的影响,即系统的某些方面使用SQLAlchemy ORM使用手动配置的引擎访问数据,而其他方面使用一个由我的一位同事编写、将连接包装在与旧PHP API匹配的对象中的不同引擎工厂(仍然是SQLAlchemy)访问数据。
任务运行器:Python 2.7、celery 2.1.4、SQLAlchemy 0.6.5、psycopg2
一旦有超过几个应用程序与数据库联系,我们就会用尽连接,正如您所期望的那样。
池化行为是一个新事物;直到现在,我们通过通过基于Web的DB网关(?!)串行访问来管理池化连接,或者根本不进行池化。因此,我必须一遍又一遍地解释(字面上,一个人在项目期间提交了5个故障单),池化是如何工作的。
我想要以下之一:
1.提供一个坚实、无可辩驳的理由,以增加可用连接数,以便与池协作。如果是这样,安全限制是多少?是否有理由将限制保持在20?
2.提供一个理由,说明我错了,我们应该减少池的大小或完全消除它们。
值得一提的是,以下是参与其中的组件。如果其中一个配置方式相关,请发表意见:
DB:PostgreSQL 8.2。不,我们不会在此过程中升级它。
Web服务器:Python 2.7、Pylons 1.0、SQLAlchemy 0.6.5、psycopg2
这复杂性还受到一个事实的影响,即系统的某些方面使用SQLAlchemy ORM使用手动配置的引擎访问数据,而其他方面使用一个由我的一位同事编写、将连接包装在与旧PHP API匹配的对象中的不同引擎工厂(仍然是SQLAlchemy)访问数据。
任务运行器:Python 2.7、celery 2.1.4、SQLAlchemy 0.6.5、psycopg2