¿Cuál sería el proceso para depurar un servidor web por problemas de rendimiento en los que se produce tiempo de inactividad?

¿Cuál sería el proceso para depurar un servidor web por problemas de rendimiento en los que se produce tiempo de inactividad?

Lamentablemente, ésta es una pregunta un tanto vaga. Pero uno al que me enfrento de vez en cuando.

En este momento mi servidor es un CentOS 5 - Plesk 9.2.1 totalmente administrado.

En los últimos días, el servidor se sigue ahogando, donde Apache (o) MySQL o ambos parecen ralentizarse significativamente y las páginas no se devuelven o se devuelven increíblemente lentamente. Reiniciar MySQL ayuda, a veces reiniciar Apache ayuda y en otras necesito reiniciar todo el servidor. (SSH comienza a funcionar muy lento).

Entonces mi pregunta es, ¿cuál sería el proceso de depuración de un servidor web por problemas de rendimiento en los que se produce tiempo de inactividad?

No creo que el servidor esté recibiendo demasiado tráfico (aunque está recibiendo un tráfico constante), simplementealgoparece matarlo...

¡Dónde empiezo!

¡Ayuda!

Respuesta1

¿Has probado alguna forma de creación de perfiles de consulta en MySQL? Si ejecuta consultas muy intensivas, por ejemplo SELECT * FROM tbl1 INNER JOIN tbl2... INNER JOIN tbl3... LEFT JOIN tbl 4... como un ejemplo realmente básico pero obvio, y está devolviendo muchas filas, o su consulta no está indexado correctamente, esto puede ralentizar enormemente su sistema. Aprendí de mis días de inexperiencia en los que no optimizaba ;-)

Herramientas como mysqlreport y el script tuning-primer.sh son buenos puntos de partida para esto. mysqlreport está enhttp://hackmysql.com/mysqlreport, y solo puedo publicar 1 enlace para buscar en Google "tuning-primer.sh" :-)

Respuesta2

La respuesta de Bernhard es buena, pero le sugiero que omita sysstat y vaya directamente amunin. con la representación gráfica de la carga, será mucho más fácil determinar si está intercambiando [¿demasiados procesos de Apache?], destruyendo el disco [consultas SQL mal optimizadas, tablas temporales demasiado grandes? ], quedarse sin energía de la CPU, etc.

para mysql activarregistro de consultas lentas.

Respuesta3

Deberías comenzar instalando el paquete sysstat. Creará estadísticas sobre CPU, memoria y carga de E/S cada 10 minutos. Cuando el servidor comience a funcionar lento nuevamente, puede consultar el resultado de la utilidad "sar" (parte del paquete) para identificar qué recurso es el cuello de botella real.

información relacionada