Re: [pgsql-es-ayuda] Recomendación sobre el tiempo idle de las conexiones

From: "Ivan Perales M(dot)" <ivan(dot)perales(at)gmail(dot)com>
To: Anthony Sotolongo <asotolongo(at)gmail(dot)com>
Cc: Ayuda Esp PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] Recomendación sobre el tiempo idle de las conexiones
Date: 2015-08-13 18:52:24
Message-ID: CAHMuS07bcPp1+K6=Y0bAUQJAaTS9BAQYFBUYetyc1z5kFA9c2g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

No creo que pgbouncer sea mi opción, presisamente mi problema es que las
conexiones se cachean llegando así al límite de las 100 predeterminadas que
vienen en postgres.

Lo que necesito es algo así como un datasource global al que le pueda pasar
datasources de bases de datos específicas y éste se encargue de checar idle
times para cerrar conexiones.

Pero no encontré ninguno y tampoco creo que lo haya, ya que no es un muy
buen diseño manejar cantidad variables de bases de datos, pero bueno, es el
diseño que mejor cumple nuestro requerimiento. Creo que lo que tendré que
hacer es asignar un tiempo de vida a las conexiones idle para que se vayan
cerrando las conexiones mas viejas, y ya que el sistema no es de alta
concurrencia, a lo mucho 10 usuarios, espero no impacte el performance de
estar abriendo conexiones cada cierto tiempo.

Saludos

2015-08-13 13:00 GMT-05:00 Anthony Sotolongo <asotolongo(at)gmail(dot)com>:

> Hola Ivan
>
> On 13/08/15 14:38, Ivan Perales M. wrote:
>
>> 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.
>>
>> No conocemos los recursos que dispones, pero aumentar el num de
> conexiones en PostgreSQL no vas a resolver mucho, no conozzo como tu driver
> utiliza el pool de conexiones, pero sino no estas claro, se te aconseja
> utilizar alguno, el pgbouncer te puede ayudar a resolver el tema
>
>> 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.
>>
> Saludos
>

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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2015-08-13 19:12:10 Re: Recomendación sobre el tiempo idle de las conexiones
Previous Message Anthony Sotolongo 2015-08-13 18:00:50 Re: Recomendación sobre el tiempo idle de las conexiones