Tuning Apache, MySql, PHP

Forums: 

Hola, tengo una aplicación LAMP corriendo en un servidor Linux Centos 4. Funciona de maravilla y es bastante eficiente casi en todo.

Les pongo las características de hardware del servidor:

Procesador: Xeon 3 GHz
RAM: 768 MB
Disco: SCSI 36 GB

El problema se da cuando el sistema emite reportes muy grandes, de más de 7000 líneas. Estos reportes terminan mostrándose luego de unos 4 minutos aproximadamente en la red local, pero se nota una baja de rendimiento muy grande en servidor, el mismo se queda en latencia y tarda mucho tiempo en atender nuevas peticiones, en palabras de usuario común, "El sistema se pone lento". Pero lo interesante del asunto es que luego de aproximadamente unos 20 minutos el servidor vuelve a su normalidad y atiende las peticiones normal y rápidamente.

Cuando el servidor entra en esta latencia, miro los procesos con el comando "top", y me doy cuenta que aparecen varios procesos (4 o 5) "httpd" que consumen el 100% de procesador, de ahí la latencia comentada anteriormente. Si alguien intenta mostrar otro de estos reportes grandes nuevamente mientras el servidor está en esta latencia, el reporte aparece incompleto, solo se muestra un 60% del mismo aproximadamente.

Alguien tiene alguna idea de lo que está pasando, o alguna sugerencia para arreglar este problema en Apache. Agradecería mucho su ayuda.

Saludos Paulo.

son muchos factores los que

Imagen de Epe

son muchos factores los que pueden influir, incluso mala práctica de la programación y mal uso de los queries en la BD, es lo que tipicamente ocurre.

Es donde primero deberías mirar. Pero también mira el php - eaccelerator que seguramente te ayudará (tengo un howto aqui explicando como instalarle).
Insisto, debes mirar código de programación y queries SQL..

Saludos
epe
--
NuestroServer.com
Ecuador: +(593) 9 9246504, +(593) 2 600 4454
USA: +1 305 359 4495, España: +34 91 7617884


Saludos
epe

EcuaLinux.com

+(593) 9 9924 6504

Servicios en Software Libre

Concuerdo con lo que dice

Imagen de deathUser

Concuerdo con lo que dice EPE, revisa los querys y mira si hay manera de optimizarlos con índices, trata el comando explain en la base de datos con el query en cuestión.

No se si necesites un reporte tan grande, 7000 registros es un número demasiado grande (para presentar en pantalla, incluso se puede morir el browser), pero bueno si lo necesitas, ni modo.

Lo de que te presenta el reporte incompleto seguramente se debe a que llegó al tiempo máximo de ejecución del script (parámetro en el php.ini)...

Suerte...

bye
:)