Recomendación sobre el tiempo idle de las conexiones

From: "Ivan Perales M(dot)" <ivan(dot)perales(at)gmail(dot)com>
To: Ayuda Esp PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Recomendación sobre el tiempo idle de las conexiones
Date: 2015-08-13 17:38:29
Message-ID: CAHMuS07r6dyp46YC6KLS5zhEqD7HO=JLa8sUpPupPSgtYLEe5Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Buenas tardes, pido su opinión ya que no soy muy bueno administrando bases
de datos.

Tengo un software el cua maneja bases de datos dinámicas, es decir, una
base de datos fija principal y se crea una base de datos por cada cliente
que se registra en el programa. El software está desarrollado en java y
utilizo BasiDataSource de apache como pool de conexiones para cada base de
datos.

El software es también cliente-servidor, lo que significa que un usuario
puede estar trabajando con una base de datos y otro usuario con otra, lo
que significa que se tienen una o más conexiones por cada base de datos,
mas aparte un usuario puede switchear entre clientes con solo seleccionarlo
de un listado, lo que implica crear conexiones a esa base de datos si nadie
la estaba usando.

Hace poco noté que un cliente del software registró mas de 100 clientes en
el programa, y pusieron a una muchacha a cargar cierta información a cada
cliente, por lo que se crearon 1 conexión por cada base y a eso le sumamos
que otros usuarios estaban trabajando con algunos clientes, pues algunas
bases de datos llegaron a tener hasta 5 conexiones. Llego un momento en que
se superaron las 100 conexiones predeterminadas para usuarios regulares que
ya no se pudo trabajar en muchos clientes. Al checar en pg_stat_activity
efectivamente estaban 99 conexiones. El ultimo uso de la mayoria de
conexiones tenia varios minutos, de entre 3 hasta 10, por lo que
seguramente fueron las primeras bases de datos que se abrieron.

Lo que me gustaria me aconsejaran es a decidir si aumento el numero de
conexiones para usuarios regulares u optimizo los datasource para que
cierren la conexión a por decir 2 o 3 minutos de que no se utilize. No se
que tanto le impacte al performance que se esten abriendo nuevas conexiones
en lugar de mantenerlas abiertas, por poner un ejemplo un usuario genera un
reporte y comienza a analizar la información, puede llevar 10 segundos en
lo que genera otro reporte para mejorar el análisis ó puede llevarse mas de
10 minutos.

Además, van a existir algunos procesos automáticos que agarren cada base de
datos para generar reportes utilizando el datasource, por lo que yo no
tengo control sobre cuantas conexiones crea cada uno.

Saludos y gracias por su tiempo

--
Lindolfo Iván Perales Mancinas
Solo existen 10 tipos de personas en el mundo, las que saben binario y las
que no.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Anthony Sotolongo 2015-08-13 18:00:50 Re: Recomendación sobre el tiempo idle de las conexiones
Previous Message Gerardo Herzig 2015-08-10 17:24:10 Re: Equivalente de @@TRANCOUNT en postgresql