太多的空闲连接会影响PostgreSQL 9.2的性能吗?


8

我的数据库服务器上的某些查询似乎需要很长时间才能响应,而且我认为CPU使用率很高。运行时ps aux,我看到约250个“空闲”连接(我认为数量太多)。我还没有开始做完整的诊断,但是我想知道这是否是一个开始寻找的好地方。

我还在事务级池中使用PgBouncer。我怀疑可以idle通过调整池大小来轻松减少连接数。但是,除非有充分的理由,否则我不想开始进行太多更改。

idlePostgreSQL 9.2中的许多连接会影响性能吗?

非常感谢!


“太多的空闲连接”是什么意思?许多?几百个?
jap1968

编辑的问题。感谢您指出了这一点。为了清楚起见,最后一次计数是
〜250

也许?我知道这里的Oracle DBA要求人们设置他们的开发工具,以便在开发数据库开始运行非常缓慢时,所有窗口都使用一个会话(而不是每个窗口都使用一个新会话)。算作“太多”的确切数字可能取决于数据库可用的资源。
FrustratedWithFormsDesigner

Answers:


3

我严重怀疑空闲连接是您的问题。PostgreSQL非常有能力处理空闲会话,因为它们几乎不占用任何资源。另一方面,活动会话很可能是速度慢的原因。

有关数据库连接数量的参考,请参见https://wiki.postgresql.org/wiki/Number_Of_Database_Connections


未提交交易的空闲会话通常是顽皮的罪魁祸首!
Philᵀᴹ

我同意,Phil,尽管这实际上并不是关于PostgreSQL的-它更多地是关于客户端的编写方式(除非我遗漏了一些东西)。
Max Vernon

请参阅与此相关的问题。如果您参与其中,那真的会有所帮助。谢谢!
Juan Carlos Coto 2013年

实际上,空闲连接确实有很多(内存)开销,因此应避免使用(我认为每个连接分配大约10MB的内存,因此在您的情况下,您将浪费至少2.5GB的内存)
Kedare

1
@MaxVernon-在我运行的PostgreSQL 9.5服务器中,我有25个空闲进程,用于RES列。进程平均约为12MB(范围:4.5MB-584MB,我怀疑较大的未提交TX)。
cerd
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.