¿Podrían demasiadas conexiones inactivas afectar el rendimiento de PostgreSQL 9.2?


8

Algunas consultas en mi servidor de base de datos parecen tardar mucho tiempo en responder, y creo que el uso de la CPU es alto. Cuando se ejecuta ps aux, veo ~ 250 conexiones "inactivas" (que creo que son demasiadas). No he comenzado a hacer un diagnóstico completo, pero quería saber si este es un buen lugar para comenzar a buscar.

También estoy usando PgBouncer con la agrupación a nivel de transacción. Sospecho que puedo reducir fácilmente el número de idleconexiones ajustando el tamaño del grupo. Sin embargo, no quiero comenzar a hacer demasiados cambios a menos que haya una buena razón para hacerlo.

¿Pueden muchas idleconexiones en PostgreSQL 9.2 afectar el rendimiento?

¡Muchas gracias!


¿Qué significa "demasiadas conexiones inactivas"? docenas cientos?
jap1968

Pregunta editada Gracias por señalar esto. Solo para que quede claro, el último recuento fue ~ 250
Juan Carlos Coto

¿Tal vez? Sé que el DBA de Oracle aquí ha pedido a las personas que configuren sus herramientas de desarrollo para usar una sola sesión para todas las ventanas (en lugar de una nueva sesión para cada ventana) cuando la base de datos de desarrollo comenzó a funcionar muy lentamente. El número exacto que cuenta como "demasiados" probablemente dependerá de los recursos disponibles para su base de datos.
FrustratedWithFormsDesigner

Respuestas:


3

Dudo seriamente que las conexiones inactivas sean tu problema. PostgreSQL es muy capaz de manejar sesiones inactivas ya que casi no requieren recursos. Las sesiones activas, por otro lado, son mucho más probables la causa de la lentitud.

Consulte https://wiki.postgresql.org/wiki/Number_Of_Database_Connections para obtener una referencia sobre el número de conexiones de la base de datos.


¡Las sesiones inactivas con transacciones no comprometidas a menudo son culpables traviesas!
Philᵀᴹ

Estoy de acuerdo, Phil, aunque eso no se trata de PostgreSQL, sino más bien de cómo se escribe el final del cliente (a menos que me falte algo).
Max Vernon

Por favor, vea una pregunta relacionada sobre esto . Realmente ayudaría si lo ayudaras. ¡Gracias!
Juan Carlos Coto

En realidad, las conexiones inactivas tienen mucha sobrecarga (de memoria) y deben evitarse (creo que asigna alrededor de 10 MB por conexión, por lo que en su caso estaría desperdiciando al menos 2.5 GB de memoria)
Kedare

1
@MaxVernon: en mi servidor postgresql 9.5 en ejecución, tengo 25 procesos inactivos, para la columna RES, ea. el proceso es en promedio de unos 12 MB (rango: 4.5 MB - 584 MB, sospecho que los más grandes tienen TX no comprometido).
Cerd
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.