Está en la página 1de 39

Rendimiendo de sistemas

Rendimiento de un servidor Web

Objetivo

Emplear algunas tcnicas expuestas a lo largo de la


unidad de aprendizaje para realizar un estudio sobre el
rendimiento de un servidor web.

Evaluacin cuantitativa del servidor.


Planificacin futura del rendimiento.

Planteamiento y metodologa de resolucin

Caracterizar la carga actual del sistema


Validar, calibrar y
ajustar el modelo
de carga

Construir un modelo de carga


Recoleccin de datos y parametrizacin

Validar, calibrar y
ajustar el modelo
de rendimiento

Desarrollar un modelo de rendimiento


Anlisis del modelo de rendimiento

Sintonizar el sistema
Planificar la capacidad del sistema

Metodologa para el estudio del rendimiento.

Comprender el sistema a evaluar

Escenario de explotacin del servicio web

La fase inicial de la metodologa consiste en conocer el


conjunto de dispositivos de hardware, software y
protocolos que se presentan en el escenario de
explotacin

Escenario de explotacin del servicio web

Es importante tener un escenario abierto, saber si los


usuarios que van a acceder al servidor se encuentran en
la red de rea local o si tambin habr usuarios externos
que puedan acceder desde cualquier localizacin va
internet y por ello implementar medidas de seguridad.

Estudio de rendimiento de un servidor web


Construccin de un modelo de carga.

En algunas ocasiones un servidor web es un


computador personal, es necesario saber la cantidad de
discos duros con los que cuenta y saber tambin la
manera en que estn distribuidos los archivos en los
discos.

Estudio de rendimiento de un servidor web


Construccin de un modelo de carga.

Conocer el software del servidor es importante, un


ejemplo es saber si ejecuta Apache Web Server, que es
uno de los servidores web ms utilizados.

Conocer
caractersticas
adicionales,
como
el
procesador, memoria, dispositivos de E/S. etc. Tambin
es importante.

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

Para comprender el rendimiento de los diferentes


sistemas, se hace uso de los programas de prueba
llamados benchmark.

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

El benchmark es una tcnica usada para medir el


rendimiento de un sistema o componente del mismo.
Ms formalmente puede entenderse que un benchmark
es el resultado de la ejecucin de un programa
informtico o un conjunto de programas en una
mquina, con el objetivo de estimar el rendimiento de un
elemento concreto, y poder comparar los resultados.

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

Programa de prueba ab

El servidor web (Apache) proporciona un programa


benchmark, el benchmark ab es una herramienta
parametrizable que se puede obtener libremente del
suministrador del servidor.
Dentro de las diferentes opciones que presenta, la
ejecucin del benchmark se realiza desde una estacin
cliente contra el servidor, por ejemplo:

ab [k] [n request][HTTP://hostname:port]/path]

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

Donde las opciones son:

k habilita la caracterstica KeepAlive del servidor.


(Que el servidor es capaz de ejecutar mltiples
peticiones en una sesin HTTP). Los resultados son
dependientes de este parmetro. Si el servidor esta
configurado con esta opcin para las transacciones
HTTP en su uso habitual, se debe activar para que la
carga artificial se asemeje al mximo a la carga real.

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

n request indica el numero de peticiones a ejecutar.


Esto es la cantidad de carga artificial a someter al
servidor. El servidor seleccionado se solicita de forma
secuencial, un total de n veces consecutivas.
hostname es el servidor al que se le envan las
peticiones HTTP; (el servidor web del rea de
ingeniera).
port representa el puerto en el que esta escuchando
el servidor. (puerto 80).
path indica el fichero al que se quiere acceder, con la
ruta completa de su ubicacin en el servidor.

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

El principal resultado de la ejecucin del benchmark ab es el troughput


o productividad desde la estacin cliente al servidor (cuantas
peticiones por unidad de tiempo puede servir el sistema).
Muestra de la ejecucin del benchamark ab y la informacin que
proporciona:
Ab k n 100 HTTP://deping.compa.com:80/~marga/atsar/grande1
Transfer Rate: 249.71 kb/s received
Benchmarking deping.compa.com (be patient)
Connection times (ms)
Server Software: Apache/1.3.27
Server Hostname: deping.compa.com
Server Port: 80
Document Path: /~marga/atsar/grande1
Document Length: 181 bytes

Concurrency Level: 1
Time taken for test: 0.203 seconds
Complete request: 100
Failed request: 0
Total transferred: 50692 bytes
Html transferred: 18100 bytes
Request per second: 492.61

Connect:
Processing:
Total:

0
0

Min
0
1
1

avg
1
0
15

max
15

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

La presentacin de los resultados de la ejecucin se


interpreta:

Server Software, versin del software del servidor web al que se


accede.
Server Hostname, nombre del servidor web al que se accede.
Server Port, puerto en el que esta el servidor recibiendo.
Document path, ruta del directorio del archivo muestra.
Document Length, tamao en bytes del archivo muestra.
Concurrency Level, al no indicarle que se deseaban peticiones
concurrentes, su valor es 1.
Time taken for test, tiempo que ha durado la ejecucin del
experimento.

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

Complete request, peticiones que se han realizado con xito.


Failed request, peticiones que han fallado.
Total transferred, numero de bytes transferidos, incluyendo las
cabeceras de los distintos protocolos que intervienen.
Html transferred, numero de bytes HTML transferidos;
nicamente se considera el tamao del archivo muestra.
Request per second, productividad media en KB por segundo.
Transfer rate, productividad media en KB por segundo.
Connection times, tiempo de conexin (mnimo, medio y
mximo) en milisegundos.

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

Benchmarking para el modulo de carga del servidor.

En este modelo de carga se dispone de cinco clases


de transacciones que demandan archivos de tamaos
medios diferentes.
Para adaptar el modelo de carga al benchmark ab, se
debe encontrar para cada clase un archivo muestra
que realmente se encuentre en el servidor y que
tenga un tamao igual o similar al tamao medio
caracterstico.

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

Se puede realizar una rutina de bsqueda en el


fichero filtrado de la carga inicial o bien utilizar
paquetes estadsticos estndar para localizar los
archivos muestra.

Una vez localizados los archivos muestra de cada


clase en el servidor, se ejecuta el benchmark con
cada uno de ellos, con numero de repeticiones
suficiente para que la estimacin de la medida sea
correcta.

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

Si se pretende que no haya interferencia de carga


real durante la experimentacin y garantizar las
condiciones de la misma, el benchmark debera
ejecutarse de modo controlado (las mediciones se
hacen los fines de semana, cuando el numero de
usuarios es nulo, desactivando incluso el acceso
desde el exterior).

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

Anlisis de los resultados del benchmarking.

El dato mas relevante que proporciona ab y que puede servir a


posteriori para modelar el comportamiento del servidor web, es
el tiempo de respuesta de las peticiones HTTP (tiempo que
transcurre desde que se inicia con el envi de las peticiones
HTTP desde el computador cliente, hasta que llegan de vuelta
los servicios demandados en esas peticiones, al cliente).

Dividiendo el tiempo de test del benchmark entre numero de


peticiones generadas en este tiempo, se obtiene el tiempo de
respuesta de cada una de esas peticiones en el servidor.

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

Invirtiendo el tiempo de respuesta medio calculado por el


benchmark para una sola peticin HTTP se obtiene la
productividad media del servidor web para ese tipo de
transaccin muestra en las condiciones del test.

Este tiempo engloba el tiempo de conexin, tiempo de


transmisin de los archivos, tiempo de resolucin del nombre del
servidor en el DNS, el tiempo en que el servidor atiende la
peticin y la transmisin de la respuesta.

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

Un benchmark orientado a peticiones HTTP no proporciona


informacin acerca del uso de los dispositivos hardware,
lgicamente puesto que tampoco se puede reconocer esa
informacin en el propio protocolo. Sera necesario usar otras
tcnicas de evaluacin del rendimiento para determinar el uso de
procesador, las visitas a los discos, la utilizacin de cache, la
latencia de la red, etc., que requiere cada peticin HTTP. Es
decir se debe monitorizar el servidor, mientras recibe peticiones
HTTP de una carga de prueba. As combinaremos el proceso de
benchmarking con la monitorizacin del sistema.

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

Monitorizacin.

Un monitor es una herramienta usada para observar


la actividad de un sistema informtico mientras es
utilizado por sus usuarios.

Observa el comportamiento del sistema, recoge datos


estadsticos de la ejecucin de los programas, analiza
dichos datos y presenta los resultados.

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

Con la monitorizacin se confrontan dos problemas:


el periodo de monitorizacin y el conocimiento de la
carga sometida; esto es resolver las cuestiones de la
interferencia con la carga real actual y discernir la
carga a monitorizar en el sistema.

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

Procesador.

Existen diversos comandos que nos permiten


monitorizar detalles importantes del hardware del
sistema, siendo las ms importantes vmstat y sar.

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

El comando vmstat (virtual memory statistics).

Proporciona informacin acerca de procesos, actividad de


la CPU, memoria, paginacin, bloques de entrada salida
e interrupciones Puede mostrar la informacin de forma
continua.

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

El comando sar.

El comando sar3 recolecta datos de rendimiento generales


Cubre la mayora de las reas del sistema:

Uso de la CPU (opcin -u, opcin por defecto)


Colas de procesos y carga del sistema (opcin -q)
Estadsticas por proceso (-x [PID | ALL])
Creacin de procesos (-c) y cambios de contexto (-w)

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

Actividad de los dispositivos de bloque (-d) y TTY (-y)


Uso de memoria y espacio de swap (-r)
Estadsticas de memoria (-R), de paginacin (-B) y de
swapping (-W)
Estadsticas de interrupciones (-I)
Estadsticas de red (-n)

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

Entrada/Salida

El monitor sar es una herramienta del sistema


operativo Linux que proporciona datos estadsticos de
los diferentes dispositivos del sistema.

Se hace necesario para que produzca realmente


lecturas de disco, la cache de E/S debe permanecer
ociosa, puesto que en caso contrario no se realiza
ninguna visita al disco, como demostrara el monitor
sar.

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

El comando hparm.

La utilidad hparm es una herramienta del sistema


operativo de Linux que proporciona todo tipo de datos
relacionados con los discos duros y memorias cache de
stos que tengan el sistema. Ejecutando varias veces esta
utilidad se obtienen los resultados de productividad de
disco duro y la cache.

Estudio de rendimiento de un servidor web


Recoleccin de datos de parametrizacin.

Anlisis operacional.

El objetivo del anlisis operacional es llegar a


establecer relaciones ente las variables que
caracterizan la carga real o sinttica y las que miden
el comportamiento.

Para construir el modelo de rendimiento, se necesita


conocer el tiempo de servicio de cada uno de los
dispositivos que forman el sistema.

Estudio de rendimiento de un servidor web


Mejora del rendimiento.

A partir del modelo final, mas detallado, se puede ajustar


el rendimiento del sistema, por ejemplo mediante la
deteccin y eliminacin del cuello de botella del servicio
web.

Para determinar los dispositivos susceptibles a ser


cuellos de botella en el servidor web, se deben calcular
las demandas globales y por clase de cliente.

Estudio de rendimiento de un servidor web


Mejora del rendimiento.

El cuello de botella ser aquel dispositivo que tenga la


demanda mas elevada para la carga del trabajo
caracterstica del momento, y que llegara primero al
100% de utilizacin, con un incremento de la cara del
mismo perfil.

Estudio de rendimiento de un servidor web


Mejora del rendimiento.

Entrada / Salida

Una vez que sea a incluido el disco, el dispositivo que presenta


una demanda mayor, tanto para cada clase de transicin como
globalmente.

Por lo que se puede concluir que la E/S es el cuello de botella


del servidor web.

Individualmente las distintas clases de transiciones, vemos que


realmente la red es el cuello de botella de las transiciones
mediana, grande y muy grande.

Estudio de rendimiento de un servidor web


Mejora del rendimiento.

Una solucin factible para mejorar el comportamiento de la E/S


pasa por reconfigurar el disco duro a travs de utilidades del
sistema operativo. La utilidad hdparm puede servir no solo para
detectar la velocidad de trasferencia, si no para cambiar los
parmetros de configuracin que afectan al funcionamiento del
disco.

Estudio de rendimiento de un servidor web


Mejora del rendimiento.

Procesador

A pesar de tener una utilizacin muy alta, la demanda


media de este dispositivo no es la mayor de las
consideradas y, por lo tanto, no parece objetivo
primario en la eliminacin de cuello de botella.

Sin embargo tiene la segunda demanda media mas


alta, despus de la E/S.

Estudio de rendimiento de un servidor web


Mejora del rendimiento.

Otro, argumento diferente es la obsolescencia del


procesador, que bien podra sustituirse por alguno de
mayor velocidad.

Por ejemplo, se podra sustituir el Pentium II por un


Pentium 4. Ya que segn el fabricante, es 6 veces mas
eficiente utilizado, precisamente, como un servidor web.

Estudio de rendimiento de un servidor web


Mejora del rendimiento.

Red

Si se consiguiera una mejora sustancial en la E/S, y


que el procesador fuese mas rpido, el siguiente paso
seria disminuir la demanda media de la red.

Una solucin costosa, pero efectiva, seria sustituir la


red fast Ethernet por una Gigabit Ethernet que
aumentara la velocidad de transmisin.

Estudio de rendimiento de un servidor web


Planificacin de la capacidad.

Proposicin de reemplazo de otros dispositivos menos


susceptibles.

Tcnicas de prediccin.

Suavizacin exponencial.

Estudio de rendimiento de un servidor web


Conclusiones.

Todas las tcnicas aprendidas en el curso con el cual


evaluamos el rendimiento de los sistemas son aplicables
para el rendimiento de un servidor web, pero es de suma
importancia conocer en especifico el servidor que vamos a
evaluar para aplicar la tcnica y/o tcnicas apropiadas para
una optima evaluacin y mejora del rendimiento del mismo.

También podría gustarte