From: | "Raul Andres Duque" <ra_duque(at)yahoo(dot)com(dot)mx> |
---|---|
To: | "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org>, "Juan Alfredo de Martin" <666lawyer(at)gmail(dot)com> |
Cc: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Conexiones Concurrentes |
Date: | 2008-12-16 18:32:25 |
Message-ID: | 058B45AB006E44A5A2A91FBAFA1644D5@amadeus.net.co |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
----- Original Message -----
From: "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org>
To: "Juan Alfredo de Martin" <666lawyer(at)gmail(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Tuesday, December 16, 2008 12:59 PM
Subject: Re: [pgsql-es-ayuda] Conexiones Concurrentes
> Juan Alfredo de Martin escribió:
>> Hola,
>>
>> Tengo que desarrollar una aplicación web que tendra un numero elevado
>> de conexiones concurrentes(10000). Alguien me puede decir cual es el
>> máximo soportado por PostgreSQL?. O que experiencia hay al respecto
>
> Hace no mucho le escribi a otra persona sobre el tema de las conexiones
> concurrentes y los sitios web. Pego abajo lo que ella decía y mi
> respuesta:
>
>> tengo 1000 usuarios conectados al sitio web, haciendo peticiones a la
>> base de datos, pueden varias peticiones ser ejecutadas a través de una
>> misma conexión.
>> El que hace esta labor de administración de conexiones es pgpool o
>> pgbouncer, pero este es un programa que debo instalar por aparte.
>> Existe otra explicación a que 1000 usuarios haciendo peticiones a la base
>> de datos no sean 1000 conexiones concurrentes?
>
> La explicacion es que no hay 1000 usuarios concurrentes. Los usuarios
> humanos leen, piensan, y se demoran en achuntarle al link con el mouse,
> asi que hay tiempos de retardo entre una peticion y la siguiente. Si
> 1000 personas visitando paginas que se demoren 20 segundos en cada una,
> son 50 peticiones (paginas) por segundo. Si cada pagina tiene 2
> consultas a la BD para desplegarse, son 100 consultas a la BD por
> segundo. Si el servidor se demora 0.01 segundos en responderte cada
> peticion, tienes 1 segundo de trabajo por segundo; en otras palabras ese
> servidor puede atender "1000 usuarios concurrentes".
>
> El tema de max_connections es que cada conexion es un proceso. Cada
> proceso usa memoria. Mientras mas memoria tienes desperdiciada en
> procesos, menos se puede usar para cache, shared_buffers, etc. Si
> tienes 1000 procesos se ocupan como 3 GB sólo en ese gasto
> administrativo, y en un server de 4 GB te queda apenas 1 GB para el
> resto de las cosas. Si tienes 100 procesos usas sólo 300 MB en eso, y
> quedan otros 3.7 GB para uso de cache, con lo cual el rendimiento es
> mucho mejor. Incluso puede ser buena idea reducirlos a 10 o 20
> procesos para reducir el gasto inútil de memoria.
>
En que momento se asigna esta memoria?
en qué momento se libera?
SIEMPRE se utiliza la misma cantidad de memoria independiente de que las
conexiones estén usadas o no?
Atentamente,
RAUL DUQUE
Bogotá, Colombia
>
> --
> Alvaro Herrera Valdivia, Chile ICBM: S 39º 48' 55.3", W 73º 15'
> 24.7"
> "XML!" Exclaimed C++. "What are you doing here? You're not a programming
> language."
> "Tell that to the people who use me," said XML.
> --
> TIP 7: no olvides aumentar la configuración del "free space map"
From | Date | Subject | |
---|---|---|---|
Next Message | Gilberto Castillo Martínez | 2008-12-16 20:31:26 | Sobre uso de Mondrian |
Previous Message | Damian Culotta | 2008-12-16 18:08:59 | Re: Conexiones Concurrentes |