From: | p2p p2p <p2pvideo(at)gmail(dot)com> |
---|---|
To: | Silvio Quadri <silvioq(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: High Load Average |
Date: | 2009-02-13 13:27:40 |
Message-ID: | fc90fffe0902130527u63c7ff86l8f0b9c214d84209f@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El 13 de febrero de 2009 12:45, Silvio Quadri <silvioq(at)gmail(dot)com> escribió:
> El día 12 de febrero de 2009 22:06, p2p p2p <p2pvideo(at)gmail(dot)com> escribió:
> >
> >
> > El 12 de febrero de 2009 20:06, Silvio Quadri <silvioq(at)gmail(dot)com>
> escribió:
> >>
> >> El día 12 de febrero de 2009 15:40, p2p p2p <p2pvideo(at)gmail(dot)com>
> escribió:
> >> > Buenas tardes,
> >> >
> >> > Tengo una aplicación web que está utilizando PostgreSQL, y en
> >> > determinados
> >> > momentos del día cuando hay aproximadamente unos 50 usuarios
> conectados
> >> > la
> >> > cosa va bien, la máquina suele estar con un load average de 3.5
> >> > aproximadamente, si las consultas que le hacen los usuarios son muy
> >> > pesadas.
> >> > El problema es que hay momentos del día
> >> > en los que la máquina se queda completamente colgada y no se recupera
> en
> >> > cuestión de horas.
> >> >
> >> > Al principio pensaba que podría ser por el número de conexiones que
> >> > puede
> >> > admitir como máximo (max_connections) y le aumenté este valor a 500, y
> >> > el de
> >> > shared_buffers a 8MB. Por lo que he podido observar, en los momentos
> que
> >> > la
> >> > máquina se queda colgada es cuando están las 500 conexiones activas.
> Hay
> >> > muchísimas consultas que indican que llevan varios minutos en
> ejecución,
> >> > algunas otras en estado IDLE, y otras tantas que aparecen repetidas.
> >> >
> >> > He estado monitorizando con top, y veo que el load average puede
> llegar
> >> > a
> >> > alcanzar picos de hasta 120. Otro detalle que he observado es que la
> >> > máquina
> >> > no hace swap, lo que me hace pensar que no es problema de memoria. La
> >> > máquina es un servidor con 3 GB de RAM, y la versión de PostgreSQL es
> la
> >> > 8.2.
> >>
> >> ¿8MB de shared buffers? Es lo mismo que nada.
> >> ¿500 conexiones web o 500 usuarios?
> >> Silvio
> >>
> >
> > En la documentación dice que el valor de shared_buffers debe ser igual al
> > número de max_conections x 16 KB.
> >
> > max_conections x 16 KB = 500 x 16 = 8000
> >
> > De ahí que haya puesto 8MB. ¿Qué valor para shared buffers me
> recomiendas?
> >
>
> La documentación dice AT LEAST 128 kilobytes and AT LEAST 16 kilobytes
> times
>
> "
> Sets the amount of memory the database server uses for shared memory
> buffers. The default is typically 32 megabytes (32MB), but might be
> less if your kernel settings will not support it (as determined during
> initdb). This setting must be at least 128 kilobytes and at least 16
> kilobytes times max_connections. (Non-default values of BLCKSZ change
> the minimum.) However, settings significantly higher than the minimum
> are usually needed for good performance. Several tens of megabytes are
> recommended for production installations. This parameter can only be
> set at server start.
> "
>
> Ponele 200M para empezar, pero no es el único parámetro que vas a
> tocar. Otros más avezados que yo te pueden guiar mejor. Vas a tener
> que tocar un parámetro en el sistema operativo antes de reiniciar.
>
> http://www.postgresql.org/docs/8.3/interactive/kernel-resources.html#SYSVIPC
>
>
> > Las 500 conexiones, son conexiones a la BD. Según una tabla que tengo que
> me
> > indica los usuarios que están online, suele estar entre 50 o 60 usuarios.
>
> ¿Y las 500 son de Web server? Al principio decías que era una
> aplicación Web ... Hay algo que está mal en el web server.
>
> ¿Identificaste el proceso que "chupa" todo el procesador cuando se cuelga?
>
Las 500 conexiones son consultas que se hacen desde el Web Server.
La arquitectura actual es: 1 Balanceador de peticiones web + 4 Frontales Web
(Apache) + 1 BD PostgreSQL
Los frontales web tienen un load average de 0.x, y la máquina de la BD un
load average que llega a alcanzar hasta 1XX.
Los procesos que consumen toda la CPU son múltiples procesos de
"postmaster".
Gracias.
>
>
> Silvio
>
>
> >
> > Muchas gracias.
> >
> >>
> >> >
> >> > ¿Qué puede estar pasando? ¿Qué me recomendáis que haga?
> >> >
> >> > Muchas gracias.
> >> >
> >>
> >>
> >>
> >> --
> >> Silvio Quadri
> >
> >
>
>
>
> --
> Silvio Quadri
>
From | Date | Subject | |
---|---|---|---|
Next Message | Conrado Blasetti | 2009-02-13 14:02:18 | Error pl : missing FROM-clause entry for table |
Previous Message | Yoel Mc Lennan | 2009-02-13 13:11:52 | Re: Timeout con ASP.net |