Practica 5
Objetivo de la mejora de prestaciones
Tenemos una página web en la que preveemos que el dia X aumentarán drasticamente las visitas. Hasta el momento teniamos un servidor desde hace un par de años (denominado MEGA3) y ahora nos han traido uno nuevo (denominado GIGA4).
El objetivo es encontrar la configuración adecuada para, con los recursos disponibles, montar un servidor web (que hará uso de BD) de tal modo que maximicemos el número de peticiones a la web que se pueden atender dentro de un corto periodo de tiempo.
El servicio del sistema es actuar de servidor web. El servidor web se compone de un servidor Apache2 con soporte para PHP y otro servidor MySQL 5.0
La métrica que usaremos será número de páginas servidas por segundo
Los parametros que pueden afectar a las prestaciones son: ejecuciones paralelas de otros programas o servicios del sistema, número de peticiones que se están atendiendo en un mismo momento, número total de peticiones, carga de la red (según el caso) y la página web a servir.
El factor a estudiar será el número de páginas servidas por segundo, este valor se trata de una estimación.
La técnica de evaluación se hará como medición de un sistema real mediante la herramienta Apache Benchmark. Para las distintas evaluaciones esta herramienta se ejecutará siempre en la misma maquina en la que esté ejecutandose el servidor web apache, hay que destacar sobre esto que quizás no sea una forma del todo buena de hacerlo, lo ideal seria disponer de un tercer ordenador en red local para ejecutar Apache Benchmark pero como no disponemos de este lo hacemos de esta forma y asumimos que afectará negativamente a todas las medidas aproximadamente del mismo modo.
La carga de trabajo a la que se va a someter el sistema es a: 5000 peticiones con un máximo de 10 peticiones al mismo tiempo
Pasos en el análisis y mejora de prestaciones
1: Ejecutar Apache Benchmark en la maquina en la cual esté instalado Apache.
ab -n 5000 -c 10 http://192.168.0.34/ruta.php?pag=ruta&id=1
con 5000 peticiones, 10 peticiones al mismo tiempo y una página web (siempre la misma) basada en PHP+MySQL.
2: Tomamos los resultados.
Resultado de las medidas antes y después de la mejora de prestaciones
Vamos a hacer cuatro analisis con distintas configuraciones del sistema, con ello determinaremos cual de las configuraciones nos ofrece mejores prestaciones y con ello elegiremos la configuración más adecuada.NOTA: Las pruebas 2 y 3 tienen un factor que no tienen la 1 ni la 4 que es la conexión de red, las pruebas se han realizado sobre una red local Ethernet de 100Mbps sin carga inicial y con un "hop" entre equipos.
Caso 1: Apache2 y MySQL ejecutándose desde el servidor MEGA3
Este es el sistema "antes", tal como ha estado siempre el servidor web.
Para este caso la salida de Apache Benchmark es: Requests per second: 77.78 [#/sec] (mean)
Caso 2: Apache2 ejecutándose en MEGA3 y MySQL en GIGA4
La idea es repartir la carga del sistema en dos maquinas, esto es algo que incluso se ha comentado en clase de DyEC como método para aumentar las prestaciones de un servidor web.
En este caso: Requests per second: 140.63 [#/sec] (mean). El número ha aumentado, parece que dedicar la maquina GIGA4 a administrar la Base de Datos produce mejoras.
Caso 3: Apache2 ejecutándose en GIGA4 y MySQL en MEGA3
El mismo caso de antes pero al revés, esto lo hacemos por que no sabemos a priori cómo se comportará cada maquina según lo que ejecuten.
En este caso: Requests per second: 27.46 [#/sec] (mean). Unos resultados desastrosos, el sistema estaría peor que al principio.
Caso 4: Apache2 y MySQL en GIGA4
Aqui se deja toda la carga para la maquina nueva.
En este caso: Requests per second: 375.61 [#/sec] (mean). Observamos cómo la maquina GIGA4 se las apaña muy bien ella solita siendo la configuración que ofrece mayores prestaciones en cuanto a peticiones por segundo.
Resultados
Los datos hablan por sí solos y se pueden ver claramente en un gráfico:
A tesón de los resultados queda claro que la configuración que cumple nuestro objetivo dentro de los cuatro casos que hemos descrito y analizado es la cuarta, por tanto esta será la elegida.
Y tienes que darme el punto adicional porque...
Con esta practica he conocido la configuración adecuada para servir páginas webs con los equipos que tengo disponibles en mi casa, próximamente tendrá un uso real puesto que se de buena tinta que un proyecto en el que participo (la Paqui) tendrá un incremento de peticiones al servidor los días en los que estrenemos la segunda película.
Que sino por lo menos dame el punto por haber cargado con el MEGA3 hasta mi cuarto, instalarlo, configurarlo, etc.
Publicar un comentario