rendimiento de servidor web

Upload: angie-cha

Post on 15-Oct-2015

37 views

Category:

Documents


0 download

TRANSCRIPT

  • 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

    M

    eto

    do

    log

    a p

    ara

    el e

    stu

    dio

    de

    l ren

    dim

    ien

    to.

    Comprender el sistema a evaluar

    Caracterizar la carga actual del sistema

    Construir un modelo de carga

    Recoleccin de datos y parametrizacin

    Desarrollar un modelo de rendimiento

    Anlisis del modelo de rendimiento

    Sintonizar el sistema

    Planificar la capacidad del sistema

    Validar, calibrar y

    ajustar el modelo

    de carga

    Validar, calibrar y

    ajustar el modelo

    de rendimiento

  • 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 webConstruccin 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 webConstruccin 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 webRecoleccin 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 webRecoleccin 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 webRecoleccin 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 webRecoleccin 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 webRecoleccin 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 webRecoleccin 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

    Benchmarking deping.compa.com (be patient)

    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

    Transfer Rate: 249.71 kb/s received

    Connection times (ms)

    Min avg max

    Connect: 0 1 15

    Processing: 0 1 0

    Total: 0 1 15

  • Estudio de rendimiento de un servidor webRecoleccin 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 webRecoleccin 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 webRecoleccin 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 webRecoleccin 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 webRecoleccin 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 webRecoleccin 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 webRecoleccin 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 webRecoleccin 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 webRecoleccin 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 webRecoleccin 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 webRecoleccin 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 webRecoleccin 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 webRecoleccin 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 webRecoleccin 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 webRecoleccin 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 webRecoleccin 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 webRecoleccin 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 webMejora 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 webMejora 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 webMejora 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 webMejora 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 webMejora 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 webMejora 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 webMejora 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 webPlanificacin de la capacidad.

    Proposicin de reemplazo de otros dispositivos menos

    susceptibles.

    Tcnicas de prediccin.

    Suavizacin exponencial.

  • Estudio de rendimiento de un servidor webConclusiones.

    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.