RE: max-pool-conecction

From: "Fernando Hevia" <fhevia(at)ip-tel(dot)com(dot)ar>
To: 'Eveling Velásquez' <lingso13(at)yahoo(dot)es>
Cc: "'Edwin Quijada'" <listas_quijada(at)hotmail(dot)com>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: max-pool-conecction
Date: 2009-10-23 15:18:08
Message-ID: 8AE2ABC5B95D44F39B4D126DA851081F@iptel.com.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

> -----Mensaje original-----
> De: Eveling Velásquez [mailto:lingso13(at)yahoo(dot)es]
>
> Hola
>
> Ok pondre esos valores y hare pruebas al respecto, pero mi
> duda es si ese valor de max-pool-conecctioon es calculable o
> lo ponemos asumiendo nosotros un max.
>
> Por otro lado tengo varias conexiones idle q creo q me estan
> quitando espacio para las consultas y consumiendo recursos,
> de que manera las puedo limitar en el datasource? O es
> recomendable eliminarlas a mano?
>
> Gracias

Te explico como funciona: abrir una conexión a la base tiene un costo
-tradicionalmente considerado alto- e insume tiempo. A su vez, cada conexión
abierta contra la base consume recursos del servidor (cpu y memoria). Si
muchas conexiones operan simultáneamente, la carga sobre el servidor puede
llevarlo a que esté tan lento que todos los clientes quedarán disconformes.
El objetivo de los pool de conexiones es evitar todo esto.

- Permiten preabrir conexiones para ahorrar el tiempo que requiere abrir una
conexión a la base ya que habrá una conexión disponible para ejecutar el
query de inmediato.
- Permiten compartir n conexiones entre m clientes, donde n < m. Esto
ahorrará recursos en el servidor ya que con pocas conexiones se podrá
atender a muchos usuarios.

Los pools pueden ir regulando en forma automática la cantidad de conexiones
abiertas en función de la demanda. Cerrarán conexiones no utilizadas por
cierto tiempo hasta llegar al mínimo parametrizado.

Respecto a tu pregunta en particular: el parámetro max-pool-connection te
indica la cantidad máxima de consultas *simultáneas* que podrás realizar
sobre la base. Si las 100 conexiones están en uso y entra el requerimiento
101, este esperará brevemente hasta que se libere alguna.

El valor exacto varía en función de la naturaleza de la aplicación, del uso
que tendrá y de la capacidad de tu hardware. Esto último es importante: lo
último que deseas es saturar tu hardware de tal manera que nada funcione.

Para una aplicación web típica (consulta de páginas y ocasionalmente algúna
escritura) con 2000 visitas diarias, 100 conexiones máximas es más que
suficiente.

Las conexiones idle que ves supongo son del pool de conexiones. Están a la
espera que aparezca algún requerimiento y entonces entrarán en actividad.
No las elimines a mano, debes controlarlas con los parámetros de mínima en
tu pool.

Saludos,
Fernando.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ricardo Mendoza 2009-10-23 15:23:41 Encuentro comunidad Postgresql Colombia en JSL 2009
Previous Message Alvaro Herrera 2009-10-23 15:17:36 Re: PROBLEMA CON REGLA