Historias
Slashboxes
Comentarios
 

Login Barrapunto

Login

[ Crear nueva cuenta ]

rvr (15)

rvr
  (email no mostrado públicam.)
http://rvr.linotipo.es/
Jabber: rvr@jabber.org

Down Kill Up Publicidad

Bitácora de rvr (15)

Jueves, 01 de Diciembre 2005

Apache, PHP, PostgreSQL y conexiones

10:26h.
Apache
Durante la semana pasada y comienzos de esta, en el servidor de Blogalia tuvimos bastantes problemas de rendimiento. La carga del sistema llegaba a niveles de 100 y 200 y, por supuesto, esto degeneraba completamente el servicio. Tras indagar un poco, creo que he encontré el origen del problema.

Blogalia usa un sistema de cachés y solo se hace una sencilla consulta por petición, por lo que era altamente sospechoso que PostgreSQL se quedara sin memoria. Revisando la configuración, PostgreSQL estaba configurado con 250 conexiones máximas y muy pocos buffers compartidos. Además, las conexiones con PHP estaban configuradas como persistentes, de tal forma que por cada instancia de Apache, se creaba una conexión persistente. Esto hacía que paulatinamente, el PostgreSQL se quedara sin memoria para completar las consultas y así los Apaches se quedaban atascados. La cola de peticiones al Apache aumentaban... círculo vicioso.

Así que para solventar el problema, configuré el PostgreSQL para trabajar solo con un máximo de 50 clientes y por el otro desactivé las conexiones persistentes en el php.ini. Tras un par de días de prueba, parece que la carga de la máquina ha vuelto a estar a niveles más que aceptables.

Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Interesante

    (Puntos:1, Informativo)
    por pobrecito hablador el Jueves, 01 Diciembre de 2005, 11:14h (#650847)
    Nunca usé PHP, pero en java se acostumbra a usar pool de conexiones libres como el DBCP o el Proxool.¿No hay nada parecido en PHP?