pruebas de rendimiento tic

223

Upload: sg6-javier-medina

Post on 19-Jan-2016

88 views

Category:

Documents


1 download

DESCRIPTION

¿Cuántos usuarios soportará como máximo nuestra nueva aplicación? ¿El cambio de tecnología en los servidores de base de datos ha tenido un impacto en el rendimiento del sistema? ¿Podemos atender un número de usuarios determinado y mantener la calidad de servicio? Preguntas cotidianas a las que este libro intenta dar respuesta.

TRANSCRIPT

  • Pruebas de Rendimiento TIC

    Gua prctica para profesionales con poco tiempo y muchas cosas por hacer.

    Javier Medina

  • Primera edicin: mayo de 2014

    Segunda edicin: julio de 2014

    Ttulo original: Pruebas de rendimiento TIC

    Diseo de portada: Javier Medina

    2014, Javier Medina

    De la presente edicin:

    2014, SG6 C.B. C/ ngel 2, 3C 30163, Laderas del Campillo (Murcia) [email protected] www.sg6.es

    N ISBN: 978-1-312-31567-9

    Esta obra est licenciada bajo la Licencia Creative CommonsSinDerivar 4.0 Internacional. Para ver una copia de esta licencia, visita http://creativecommons.org/licenses/by-nc-

    30163, Laderas del Campillo (Murcia)

    Esta obra est licenciada bajo la Licencia Creative Commons Atribucin-NoComercial-SinDerivar 4.0 Internacional. Para ver una copia de esta licencia, visita

    -nd/4.0/.

  • A los que me habis aguantado mientras lo he escrito.

    A los correctores, casi involuntarios, quiz algo forzosos

    A ti, que lo ests leyendo.

  • Pruebas de Rendimiento TIC 7

    NDICE

    NDICE .............................................................................................................. 7 PRLOGO ........................................................................................................ 9 OTRO LIBRO SOBRE LO MISMO? .................................................................. 11 GLOSARIO | 0................................................................................................. 13 INTRODUCCIN | 1 ........................................................................................ 17

    1.1 |ENFOQUE Y DESTINATARIOS ............................................................................ 18 1.2 | QU ES UNA PRUEBA DE RENDIMIENTO? ........................................................ 19 1.3 | PARA QU SIRVE UNA PRUEBA DE RENDIMIENTO? ............................................ 21 1.4 | IDEAS ERRNEAS ......................................................................................... 22 1.5 | CMO USAR ESTA GUA? ............................................................................. 25

    ENTRANDO EN MATERIA | 2 .......................................................................... 27 2.1 | TIPOS DE PRUEBAS ....................................................................................... 29 2.2|PERSPECTIVA DE EVALUACIN .......................................................................... 36 2.3 | MEDIDAS Y MTRICAS .................................................................................. 41 2.4 | EVALUACIN DE ARQUITECTURAS MULTICAPA ................................................... 46 2.5 | ANLISIS COMPARATIVO: PERFILES "BASE". ...................................................... 51 2.6 | USUARIOS: GLOBALES, DEL SERVICIO, POR MES/DA/HORA, ACTIVOS VS. SIMULTNEOS VS. CONCURRENTES... ........................................................................................... 56

    HERRAMIENTAS | 3 ....................................................................................... 61 3.1 | RENDIMIENTO WEB: LAS HERRAMIENTAS CLSICAS ............................................. 63 3.2 | RENDIMIENTO NO WEB: HERRAMIENTAS ESPECFICAS .......................................... 81 3.3 | APACHE JMETER: LA NAVAJA SUIZA. ................................................................ 83 3.4 | FRAMEWORKS: SCRIPTING PARA GENTE ELEGANTE .............................................. 99

    PLANIFICACIN| 4 ....................................................................................... 103 4.1 | OBJETIVOS: POR QU? .............................................................................. 105 4.2 | TIPO: QU? ............................................................................................ 107 4.3 | ENTORNO Y CICLO DE VIDA: DNDE? ........................................................... 109 4.4 | CARGA: CUNTA? .................................................................................... 117

  • 8 ndice

    4.5 | OTRAS PREGUNTAS "SECUNDARIAS". ............................................................. 124 4.6 | UN EJEMPLO PARA TERMINAR ...................................................................... 127

    DISEO Y EJECUCIN | 5 .............................................................................. 131 5.1 | DISEO Y CONSTRUCCIN DE PRUEBAS .......................................................... 133 5.2 | PROBLEMAS HABITUALES EN LA FASE DE DISEO .............................................. 161 5.4 | EJECUTAR LA PRUEBA ................................................................................. 176 5.5 | PROBLEMAS COMUNES EN LA FASE DE EJECUCIN ............................................ 179

    ANLISIS DE RESULTADOS | 6 ....................................................................... 183 6.1 | LA NORMALIDAD EN EL RENDIMIENTO ............................................................ 185 6.2 | LA ANORMALIDAD EN EL RENDIMIENTO .......................................................... 190 6.3 |RENDIMIENTO: ERRORES Y OPTIMIZACIN ....................................................... 194 6.4| EXTRAPOLAR DATOS DE RENDIMIENTO ............................................................ 198

    CASO PRCTICO | 7 ...................................................................................... 203 7.1 | PRIMERA PARTE: MOODLE PREPRODUCCIN ................................................... 203 7.2 | SEGUNDA PARTE: MOODLE PRODUCCIN ....................................................... 218 7.3 | TERCERA PARTE: MOODLE SGBD ................................................................... 220

  • Pruebas de Rendimiento TIC 9

    PRLOGO Fue a mediados del ao 2008 cuando conoc al autor del libro: Javier Medina. Un joven consultor de una recin creada empresa: SG6. Se present con un proyecto de pruebas de intrusin en mi despacho de Director del Servicio de Tecnologas de la Informacin y las Comunicaciones (STIC) de la Universidad de Almera. En ese momento comenz una colaboracin entre nuestras organizaciones, que todava contina, que ha dado numerosos frutos y que ha permitido crecer y mejorar a ambas.

    Este libro es uno de los resultados de esa colaboracin. En este caso de la necesidad por parte del STIC de formar a aquellos de nuestros tcnicos que en algn momento se ven ante la necesidad de ejecutar una prueba de rendimiento en nuestro sistema de informacin. La idea, en definitiva, ha sido crear algo para aquellas personas que realizan otras tareas en el mbito de las TIC y que solo de forma espordica se van a ver en la necesidad afrontar esta tarea.

    Las caractersticas personales del autor, clarividencia, tozudez, versatilidad y sentido prctico, se reflejan en este libro que tienes en tus manos. El objetivo de explicar qu es y cmo realizar e interpretar de forma correcta una prueba de rendimiento est sin duda ms que conseguido a lo largo de sus captulos.

    Por ello, si quieres o tienes que aprender a hacer pruebas de rendimiento y no quieres ni perder tiempo, ni que te mareen, mi recomendacin es que lo leas.

    Diego Prez Martnez

  • 10 Prlogo

  • Pruebas de Rendimiento TIC 11

    OTRO LIBRO SOBRE LO MISMO?

    Parece que s, que otro libro ms sobre lo mismo. Pero con matices. La gua que tienes entre las manos (o que ests leyendo en una pantalla) es la respuesta a una necesidad de trabajo que ha ido creciendo casi sin pretenderlo. Y que adems, parece, puede ser til a ms gente.

    La tarea empez, como cuenta el prlogo, con la idea de formar profesionales IT que no son, ni quieren ser, expertos en pruebas de rendimiento. Administradores de sistemas, administradores de red o desarrolladores que ven stas pruebas como una herramienta ms de su trabajo. Una herramienta a usar cada cierto tiempo, cuando hay un problema o duda que responder. Y en consecuencia quieren claridad y practicidad porque despus de la prueba de rendimiento hay que volver al quehacer diario: subir de versin una base de datos, programar una nueva aplicacin, actualizar el firmware de un router...

    Al principio del proyecto, no obstante, no estaba nada claro que hiciese falta escribir un nuevo libro (de libros innecesarios ya est lleno el mundo). Al ojear lo que ya haba escrito, salvo no encontrar casi nada en castellano, no aparecan ms motivos. The Art of Application Performance Testing, Performance Testing Guidance for Web Applications, Performance Testing with Jmeter... aparentaban ser suficientes pginas ya escritas.

    Y convencido estaba de no tener que escribir hasta que rele con ms detenimiento algunos de ellos. Dndome cuenta de algo en lo que nunca me haba fijado: eran libros cuyo pblico objetivo son profesionales interesados en profundizar en las mejores prcticas sobre estos asuntos. Sin embargo, no terminan de encajar ante la necesidad de un texto con el que guiar a perfiles que no desean, ni necesitan, ser expertos.

    Es decir, para formar un grupo heterogneo, como el del proyecto que ha originado este texto, son libros a los que les falta realismo domstico.

  • 12 Otro libro sobre lo mismo?

    Falta concisin, pragmatismo, casos prcticos, uso demostrativo de herramientas, ejemplos para la interpretacin de resultados, parecen escritos para alguien que ya sabe de qu le ests hablando. Por tanto, s que exista un motivo para escribir algo nuevo.

    Una vez escrito, el siguiente paso ha venido un poco rodado: no parece disparatado pensar que la necesidad original no pueda ser la necesidad de otras organizaciones: disponer de profesionales IT con perfiles heterogneos que realicen de pruebas de rendimiento, puntuales, como parte de su trabajo.

    Pruebas que les permitan contestar de forma adecuada a las preguntas que surgen, da a da, en la gestin de un sistema de informacin: Cuntos usuarios soportar como mximo nuestra nueva aplicacin? El cambio de tecnologa en los servidores de base de datos ha tenido un impacto en el rendimiento del sistema? Podemos atender un nmero de usuarios concreto y mantener la calidad de servicio? ...

    Preguntas cotidianas que en el momento que puedan estar quedando sin respuesta, justifican no slo ya escribir, sino, ms importante, hacerlo pblico y accesible digitalmente a todos los que la necesiten, bajo formato Creative Commons, as como distribuirlo impresa en papel para los que prefieran su adquisicin en soporte fsico.

    Sin ms, de verdad, espero que sea til.

    Javier Medina.

  • Pruebas de Rendimiento TIC 13

    GLOSARIO | 0

    Capacidad

    La capacidad de un sistema es la carga total de trabajo que puede asumir ese sistema manteniendo unos determinados criterios de calidad de servicio previamente acordados.

    Carga de Trabajo

    La carga de trabajo es el conjunto de tareas aplicadas a un sistema de informacin para simular un patrn de uso, en lo que respecta a la concurrencia y / o entradas de datos. La carga de trabajo se simula a partir del nmero total de los usuarios, de los usuarios activos simultneos, del volumen de transacciones y de los tipos de transacciones empleados.

    Escalabilidad

    La escalabilidad se refiere a la eficacia de un sistema de informacin para gestionar el incremento de la carga de trabajo, aprovechando los recursos del sistema: procesador, memoria, ...

    Estabilidad

    En el contexto de las pruebas de rendimiento, la estabilidad se refiere a la fiabilidad general del sistema, la robustez y ausencia de fallos en las respuestas, la integridad funcional y de datos ante situaciones de alta carga, la disponibilidad del servicio y la consistencia en los tiempos de respuesta.

    Investigacin

    La investigacin son todas las actividades relacionadas con la recopilacin de informacin sobre tiempos de respuesta, escalabilidad, estabilidad, ... que se emplean para probar o refutar una hiptesis sobre la causa raz de un problema de rendimiento.

  • 14 Glosario | 0

    Latencia

    La latencia es una medida del retardo en el procesamiento de la informacin. Es decir es el tiempo que transcurre esperando una respuesta sin que exista procesamiento de informacin. La latencia puede ser compuesta por un sumatorio de los retardos de cada subtarea.

    Metas

    Las metas de rendimiento son objetivos de rendimiento de carcter interno que se desean cumplir antes de la liberacin de un servicio. Las metas son negociables, adaptables y no dependen del cliente.

    Mtrica

    Las mtricas son conjuntos de medidas obtenidas a partir de pruebas de rendimiento que presentan un contexto, poseen un sentido y transmiten una informacin.

    Objetivos

    Los objetivos de rendimiento son los valores deseados del rendimiento de un sistema. Se obtienen directamente de las mtricas. Los objetivos de rendimiento agrupan, por tanto, metas y requisitos.

    Rendimiento

    El rendimiento es el nmero de unidades de trabajo que se pueden gestionar por unidad de tiempo; por ejemplo, peticiones por segundo, llamadas por da, visitas por segundo, informes anuales, ... Requisitos

    Los requisitos de rendimiento son objetivos dependientes del cliente y, por tanto, de obligado cumplimiento antes de la liberacin de un servicio.

  • Pruebas de Rendimiento TIC 15

    Saturacin

    Punto mximo de utilizacin de un sistema a partir del cual se degrada el rendimiento del mismo.

    Tiempo de respuesta

    El tiempo total que tarda un sistema de informacin en atender una peticin de usuario, incluye el tiempo de transmisin, el tiempo de latencia y el tiempo de procesamiento.

    Umbral de rendimiento

    Los umbrales de rendimiento son los valores mximos aceptables para cada uno de los objetivos que conforman una prueba de rendimiento.

    Utilizacin

    Porcentaje de tiempo que un recurso est ocupado atendiendo las peticiones provenientes del usuario.

  • 16 Glosario | 0

  • Pruebas de Rendimiento TIC 17

    INTRODUCCIN | 1

    Empezamos con un primer captulo donde tratar cinco puntos bsicos, que incluso pueden parecer poco importantes, pero que nos sern de utilidad en las siguientes partes y, lo principal, permiten a cualquiera que eche un vistazo saber si es esta gua es lo que necesita o si por el contrario est buscando otra cosa.

    Enfoque y destinatarios. Cul es la finalidad y para qu personas est pensado este texto. Importante la parte del enfoque para entender el resto de la gua.

    Qu es una prueba de rendimiento? Explicacin breve y sencilla de, segn el enfoque que hemos tomado, qu son las pruebas de rendimiento.

    Para qu sirve una prueba de rendimiento? El siguiente paso a conocer qu son es saber para qu las podemos utilizar.

    Ideas errneas. Ms importante que saber para qu las podemos utilizar, est el conocer qu ideas debemos desterrar, porque en caso de no hacerlo posiblemente nos equivoquemos al usarlas.

    Cmo usar esta gua? Como ltimo punto del captulo, una vez que sepamos si somos los destinatarios adecuados, qu son las pruebas de rendimiento, para qu sirven y para qu no sirven, tendremos un pequeo resumen de los siguientes captulos y unas recomendaciones de uso.

  • 18 Introduccin | 1

    1.1 |ENFOQUE Y DESTINATARIOS Los destinatarios de este libro son profesionales en los campos de las tecnologas de la informacin y la comunicacin que, sin dedicarse a ello a tiempo completo y sin intencin de convertirse en expertos de la disciplina, necesitan hacer pruebas de rendimiento como parte de su trabajo; usando herramientas de acceso pblico, gratuito y libre.

    El enfoque de la gua, siendo consecuentes con el pblico objetivo, es reduccionista. Es decir, lo que lees en ningn momento pretende ser la biblia de las pruebas de rendimiento; sino todo lo contrario.

    En todo momento se intenta simplificar, descartar informacin excesiva, agrupar casos habituales y procedimentar la realizacin de pruebas de rendimientos.

    La idea es que cualquiera, incluso sin nunca haber hecho una antes, con un poco de esfuerzo por su parte, consiga dar respuesta a las preguntas ms comunes a las que una prueba de este tipo responde.

    La decisin de simplificar, descartar, agrupar y procedimentar implica, no puede ser de otra forma, una prdida de precisin y de exactitud en las pruebas que se realicen usando este texto como base. Usando metodologas ms completas y enfoques ms globales los resultados que se obtendrn sern ms precisos.

    Sin embargo, nuestra finalidad es otra.

    Queremos obtener resultados lo suficientemente buenos como para que sean vlidos en la toma de decisiones. Y queremos que estos resultados puedan ser obtenidos por cualquiera profesional de los que conforman un rea/departamento TIC.

    Este es el enfoque de esta gua. Esperemos que te sea til.

  • Pruebas de Rendimiento TIC 19

    1.2 | QU ES UNA PRUEBA DE RENDIMIENTO? Segn dice esa fuente del saber humano llamada Wikipedia1: En la ingeniera del software, las pruebas de rendimiento son las pruebas que se realizan [..] para determinar lo rpido que realiza una tarea un sistema en condiciones particulares de trabajo. Tambin puede servir para validar y verificar otros atributos de la calidad del sistema, tales como la escalabilidad, fiabilidad y uso de los recursos. Las pruebas de rendimiento son un subconjunto de la ingeniera de pruebas, una prctica informtica que se esfuerza por mejorar el rendimiento, englobndose en el diseo y la arquitectura de un sistema, antes incluso del esfuerzo inicial de la codificacin.

    La definicin de Wikipedia es completa, sin embargo, en lnea con el enfoque de la gua, ms que determinar lo rpido que se realiza un trabajo, la idea con la que nos vamos a mover es la de determinar si el trabajo se realiza dentro de unos parmetros de calidad de servicio.

    Por tanto una buena definicin de qu es una prueba de rendimiento sera:

    Un conjunto de pruebas que se realizan para determinar si un servicio IT atiende a sus usuarios dentro de unos parmetros de calidad de servicio (tiempo de respuesta, disponibilidad, ...) ante unas condiciones determinadas del sistema de informacin (nmero de usuarios, tipo de peticiones, tiempo...).

    Traducido a algo ms tangible. Ejemplo: realizar unas pruebas para conocer si ante un volumen concreto de usuarios nuestra aplicacin web de reservas es capaz de atender las peticiones ms habituales de una sesin de navegacin en menos de 2 segundos.

    1 http://es.wikipedia.org/wiki/Pruebas_de_rendimiento_del_software

  • 20 Introduccin | 1

    Anatoma de una prueba de rendimiento

    Dejando al margen definiciones, el siguiente diagramailustra de forma sencilla qu fases encontramos en una prueba de rendimiento, en qu consisten y cmo se relacionan entre ellas.

    Importante ver que se distinguenpuramente tcnica (la ejecucin de proceso.

    Anatoma de una prueba de rendimiento

    Dejando al margen definiciones, el siguiente diagrama [Figura 1.1] qu fases encontramos en una prueba de

    rendimiento, en qu consisten y cmo se relacionan entre ellas.

    se distinguen tres fases y observar que la parte la prueba) es una pequea parte del

  • Pruebas de Rendimiento TIC 21

    1.3 | PARA QU SIRVE UNA PRUEBA DE RENDIMIENTO? Una prueba de rendimiento, dependiendo del tipo de prueba, ms adelante veremos los tipos, y del punto del ciclo de vida del servicio en los que se realicen pruebas puede tener utilidades diversas.

    Fase de desarrollo

    Deteccin de defectos de rendimiento tempranos.

    Fase de Preproduccin

    Predecir el funcionamiento de la aplicacin en el entorno produccin en base a unas estimaciones de uso y escalado.

    Deteccin de errores o defectos de rendimiento en el servicio (software o hardware).

    Comparar el rendimiento del servicio en preproduccin con el de otros servicios evaluados o con un baseline previo (en el siguiente captulo veremos el concepto del "perfil base") pudiendo establecer criterios de paso a produccin.

    Fase de Produccin

    Evaluar si un servicio se adeca correctamente a las necesidades de calidad de servicio del usuario (principalmente en parmetros de tiempo de respuesta)

    Evaluar la estabilidad y la degradacin del servicio.

    Evaluar cmo cambios en la infraestructura IT que sustenta el servicio (bases de datos, servidores de aplicacin, infraestructura de red) afecta al rendimiento del mismo.

    Deteccin de defectos y mejoras de eficiencia: cuellos de botella, comportamiento ante niveles de carga, ...

  • 22 Introduccin | 1

    1.4 | IDEAS ERRNEAS Dos ideas errneas estn muy generalizadas cuando se habla de pruebas de rendimiento. La primera es olvidar qu significa simular y la segunda es dar demasiada importancia a los datos.

    Ideas que son bastante pertinaces y que muchas veces se cuelan incluso en el discurso de los ms doctos en la materia (esperamos que en esta gua se hayan mantenido a raya).

    Olvidar qu significa simular

    Por muy bien que lo hagamos, por muy meticulosos, globales y concienzudos que seamos realizando una prueba de rendimiento (muchsimos ms concienzudos que lo que contempla esta gua) al final nuestra prueba de rendimiento es una simulacin de un subconjunto de acciones plausibles sobre un servicio/aplicativo.

    Por ello, no vamos a poder tener una equivalencia absoluta respecto a los eventos a los que el servicio o la aplicacin se enfrentarn en un futuro. Podremos aproximarnos, podremos predecir, podremos estimar, pero no podremos conocer con exactitud qu pasar en la realidad.

    En consecuencia, cuando realicemos una prueba de rendimiento debemos tener siempre presente, y nunca olvidar, que los resultamos que obtengamos son una aproximacin a lo que podra suceder, que son susceptibles de error y que las decisiones que tomemos en base a ellos deben contemplar esa posibilidad de error.

    Ejemplificando, quiz de forma un poco burda, tiene poco sentido pensar que porque nuestra aplicacin se ha comportado de forma "adecuada" ante 50 usuarios simultneos en una prueba de carga de 20 minutos de duracin en preproduccin, va a hacer lo mismo en el entorno de produccin enfrentndose a esos mismos 50 usuarios simultneos durante meses (crecimiento de la base de datos, aumento de ficheros temporales, incremento de informacin almacenada en disco, ...).

  • Dar demasiada importancia a los datos

    Quiz porque, a priori, puede parecer que la parte ms compleja de una prueba de rendimiento es la parte tcnica, es decir,las herramientas para obtener los datos de rendisobrevaloracin de los mismos. Pero la realidad es que obtienen son slo eso, datos. Y deben ser intercontexto; que es la parte verdaderamentdejadez, es fcil cometer errores.

    Cuando hacemos pruebas de rendimiento lo que obtenemos son parmetros sin ningn significado por ellos mismos:Tiempo de respuesta, nmero de peticiones atendidas, nmero de peticiones errneas... nicamentedatos que en bruto, resultado de finalizar la prueba.

    Sin embargo, a poco que lo pensemos durante un instante, veremos que respuesta puede ser vlido para un tipo de aplicacin y para otro tipo de aplicacin; de la misma forma que 10 fallpeticiones puede ser una cifra aceptable o puede ser totalmente inaceptable, segn lo que estemos tratando.

    Por tanto, debemos entender, desde el principio, que efectivamente para que una prueba de rendimiento sea til est claro que debemos obtener datos, y de la mayor calidad, pero una vez obtenidos, el problema pasa a ser otro.

    Un ejemplo sencillo para ver que realmente un dato gran valor sin una interpretacin del mismo y un contexto1 que podemos encontrar en la siguiente pgina.

    Pruebas de Rendimiento TIC 23

    Dar demasiada importancia a los datos

    puede parecer que la parte ms compleja de rendimiento es la parte tcnica, es decir, la preparacin de

    para obtener los datos de rendimiento, se puede caer en la Pero la realidad es que los datos que se

    obtienen son slo eso, datos. Y deben ser interpretados y puestos en ue es la parte verdaderamente til del asunto y donde, por

    Cuando hacemos pruebas de rendimiento lo que obtenemos

    n significado por ellos mismos:

    nmero de nmero de nicamente

    do de

    Sin embargo, a poco que lo pensemos durante un instante, veremos que 3 segundos de tiempo de respuesta puede ser vlido para un tipo de aplicacin y totalmente inviable

    n; de la misma forma que 10 fallos por cada 1000 peticiones puede ser una cifra aceptable o puede ser totalmente inaceptable, segn lo que estemos tratando.

    Por tanto, debemos entender, desde el principio, que efectivamente para que una prueba de rendimiento sea til est claro que

    emos obtener datos, y de la mayor calidad, pero una vez obtenidos, el

    Un ejemplo sencillo para ver que realmente un dato no tiene un sin una interpretacin del mismo y un contexto es el EJEMPLO 1-

    ar en la siguiente pgina.

  • 24 Introduccin | 1

    EJEMPLO 1-1

    Tenemos una nueva aplicacin en pre

    Se realizan un conjunto pruebas de carga siguientes datos.

    Podemos obtener alguna conclusin a partir de los mismosPodemos, por ejemplo, saber si la aplicacin est lista para su paso a produccin?

    Parece evidente que no es posible dedatos precisos) porque carecemos de contexto y de interpretacin de resultados. aplicacin que van a usar unas pocas decenas demilisegundos es un tiempo razonable de respuesta. Pero y si la van a usar miles? Son ms de respuesta? Como usuarios, nos imaginamosuna respuesta de Google? Y esperando esos 4 segundos para generar el listado de operaciones de las ltimos 24 meses de nuestro servicio de banca online?

    Contexto e interpretacin de resultados

    Tenemos una nueva aplicacin en pre-produccin.

    Se realizan un conjunto pruebas de carga bsicas y se obtienen los

    Podemos obtener alguna conclusin a partir de los mismos?

    o, saber si la aplicacin est lista para su paso

    Parece evidente que no es posible determinarlo (aunque tengamos ) porque carecemos de contexto y de una

    interpretacin de resultados. Podramos pensar que si es una unas pocas decenas de usuarios, 500

    milisegundos es un tiempo razonable de respuesta. Pero y si la van 4 segundos un tiempo razonable de

    nos imaginamos 4 segundos esperando ? Y esperando esos 4 segundos para

    generar el listado de operaciones de las ltimos 24 meses de nuestro servicio de banca online?

    de resultados son lo que dan valor.

  • Pruebas de Rendimiento TIC 25

    1.5 | CMO USAR ESTA GUA? Esta gua tiene dos partes. Por un lado, una primera parte, que tiene un enfoque introductorio, y por otro, una segunda parte destinada a la creacin de pruebas y a la evaluacin de rendimiento que termina con un caso prctico completo.

    Si nunca has hecho una prueba de rendimiento, el uso ms razonable sera, primero leer bien la parte terica, sobre todo los primeros captulos, sin prisas y detenindose en los ejemplos que hay en ella. Para una vez hecho, pasar a la parte final, donde lo recomendable sera reproducir los casos prcticos.

    Por el contrario si ya ests mnimamente familiarizado con las pruebas de rendimiento, es posible que las partes ms interesantes sean las dedicadas al diseo y construccin de pruebas, la dedicada a evaluacin de resultados y el caso prctico final.

  • 26 Introduccin | 1

  • Pruebas de Rendimiento TIC 27

    ENTRANDO EN MATERIA | 2

    Este captulo nmero dos tiene por objetivo tratar una serie de conceptos, algunos ellos bsicos, que es necesario conocer antes de entrar a explicar una metodologa para la realizacin de pruebas de rendimiento o de analizar herramientas con las que realizar estas pruebas. Son los siguientes.

    Tipo de pruebas. Cuando hablamos de pruebas de rendimiento agrupamos en un trmino muchos tipos diferentes de pruebas, con distintas finalidades. Pruebas de carga, pruebas de stress o pruebas de capacidad, son conceptos que en principio pueden parecer "lo mismo"; pero que no lo son.

    Perspectiva de evaluacin. Otro asunto importante es entender lo que se conoce como perspectiva de evaluacin. Es decir, en la piel de quin nos ponemos cuando realizamos la prueba de rendimiento. No es lo mismo realizar la prueba de rendimiento desde la perspectiva del usuario final, que desde la perspectiva de un desarrollador o de la de un administrador de sistemas.

    Medidas y Mtricas. Hasta ahora hemos hablado de algunas de ellas, por ejemplo, tiempos de respuesta o nmero de peticiones errneas. Sin embargo existen otras y adems debemos ahondar en la construccin de mtricas a partir de ellas.

    Evaluacin de arquitecturas multicapa. Hoy da un amplio nmero de pruebas de rendimiento se realizan sobre la capa de servicio/aplicacin web, sin embargo existen otras capas (red, datos, etc.) que es conveniente conocer y de las que debemos valorar sus implicaciones para obtener calidad en los datos de rendimiento obtenidos.

  • 28 Entrando en materia | 2

    Perfiles Base. En el primer captulo se nombraron, sin explicarlos, los baseline o perfiles "base". Una herramienta de trabajo hora de realizar pruebas de rendimiento comparaciones. Ha llegado el momento de expli

    Usuarios. Es lo mismo un usuario simultneo que uno concurrente? Cmo influye el nmero total de usuarios del aplicativo en el rendimiento? Son conceptos que en ocasiones se mezclan, hablando indistintamente de simultneo, de concurreo simplemente de "usuarios", cuando en realidad hay que diferenciarlos y debemos profundizar en esas diferencias pues son muy significativas a la hora de hacer pruebas de rendimiento.

    En el primer captulo se nombraron, sin explicarlos, o perfiles "base". Una herramienta de trabajo til a la

    hora de realizar pruebas de rendimiento y establecer a llegado el momento de explicarla con detalle.

    Es lo mismo un usuario simultneo que uno concurrente? Cmo influye el nmero total de usuarios del aplicativo en el rendimiento? Son conceptos que en ocasiones se mezclan, hablando indistintamente de simultneo, de concurrente o simplemente de "usuarios", cuando en realidad hay que diferenciarlos y debemos profundizar en esas diferencias pues son muy significativas a la hora de hacer pruebas de rendimiento.

  • 2.1 | TIPOS DE PRUEBAS A la hora de expresarnos rendimiento, mientras que otras decimos cosas como de stress o cualquier idea que nos suene parecida. Al hacerlo abusos del lenguaje, incluso pequeas atrocidades, porque realmente una prueba de carga y una prueba de stress son

    Vamos a intentar explicar esas diferencias y mas all de la diferencias, lo verdaderamente importante: para qu sirve cada tipo de prueba y qu prueba tenemos que hacer segn lo que queramos averiguar. Como aclaracin previa, estas definiciones no son axiomas y entre algunas de ellas hay tanta relacin que es difcil separarlas.

    Pruebas de Rendimiento

    Pruebas de Carga

    Pruebas de Resistencia

    o Estabilidad

    Pruebas de Stress

    Variacin de

    Pruebas de Rendimiento TIC 29

    unas veces hablamos de pruebas de otras decimos cosas como pruebas de carga, test

    nos suene parecida. Al hacerlo cometemos abusos del lenguaje, incluso pequeas atrocidades, porque realmente una

    a y una prueba de stress son algo distinto.

    Vamos a intentar explicar esas diferencias y mas all de la diferencias, lo verdaderamente importante: para qu sirve cada tipo de prueba y qu prueba tenemos que hacer segn lo que queramos averiguar.

    racin previa, estas definiciones no son axiomas y entre algunas de ellas hay tanta relacin que es difcil separarlas.

    Pruebas de Rendimiento

    Pruebas de Stress

    Pruebas de Variacin de

    Carga

    Pruebas de Capacidad

  • 30 Entrando en materia | 2

    Pruebas de rendimiento

    Pruebas de rendimiento son todas las pruebas que vamos a ver a continuacin. Es frecuente que cuando se habla de "realizar pruebas de rendimiento a un sistema" se est agrupando en un slo concepto la realizacin simultnea de varias pruebas, por ejemplo: una prueba de carga, una prueba de resistencia y una prueba de stress.

    Prueba de carga

    Se trata de la prueba de rendimiento ms bsica.

    El objetivo de una prueba de carga es evaluar el comportamiento del sistema bajo una cantidad de peticiones determinadas por segundo. Este nmero de peticiones, a nivel bsico, puede ser igual que el nmero de usuarios concurrentes esperados en la aplicacin ms/menos unos mrgenes.

    Los datos a recopilar son principalmente dos: tiempo de respuesta de la aplicacin y respuestas errneas.

    La ejecucin de una prueba de carga, por tanto, consiste en seleccionar un nmero usuarios concurrentes/simultneos estimados y medir los parmetros elegidos en una serie de repeticiones de la prueba, determinando si se mueven en umbrales aceptables de rendimiento.

    Un detalle importante es que dependiendo del autor/escuela del libro que tengamos delante nos dirn que la prueba de carga tambin sirve para determinar el punto de ruptura del servicio. Esta informacin, en opinin del que escribe, es parcialmente falsa. El punto de ruptura del servicio, es decir, el nmero de peticiones a partir de los cuales la aplicacin deja atender al usuario, slo se identificar en una prueba de carga si existen errores/defectos de rendimiento en la aplicacin. Es decir, si el punto de ruptura del servicio est por debajo del nmero de peticiones que se espera que la aplicacin deba soportar. Pero no ser objetivo de la prueba de carga encontrarlo.

  • EJEMPLO 2-1 El grfico 1 de este ejemplo muestracarga para un sistema donde se han estimado 30 usuarios concurrentes con 1 peticin por segundounos mrgenes de seguridad de +/

    El siguiente grfico, por el contrario muestra el resultado que obtendramos en caso de existir algn error/defecto de rendimiento que hara aparecer el punto ddurante la prueba de carga.

    0

    50

    100

    150

    200

    250

    300

    20 25

    Valor

    es

    Usuarios concurrentes

    Ejemplo 2-1 | Prueba de Carga 2

    Pruebas de Rendimiento TIC 31

    El grfico 1 de este ejemplo muestra el resultado de una prueba de carga para un sistema donde se han estimado 30 usuarios

    eticin por segundo y donde se han evaluado unos mrgenes de seguridad de +/- 10 usuarios.

    , por el contrario muestra el resultado que obtendramos en caso de existir algn error/defecto de rendimiento que hara aparecer el punto de ruptura del servicio

    30 35 40Usuarios concurrentes

    1 | Prueba de Carga 2

    Tiempo medio(s)Errores

  • 32 Entrando en materia | 2

    Prueba de resistencia

    Las pruebas de resistencia, tambin llamadas de estabilidad, son una variante de las pruebas de carga.

    El objetivo de una prueba de resistencia/estabilidad es determinar el comportamiento de la aplicacin a lo largo del tiempodegradacin del rendimiento derivada del uso sostenido

    El tiempo de prueba ms comn suelen ser unminutos. Un ejemplo tpico de prueba de carga podran ser: haciendo una o dos peticiones por segundocrecimiento de 2 minutos y un periodo estable de 3de carga convencional difcilmente se va a poder apreciar la degradacin de rendimiento derivada del uso continuadsemanas.

    La ejecucin de una prueba de resistencia prueba de carga, se usa como referente el nmero de usuarios concurrentes esperados pero su duracin es de das.

    EJEMPLO 2-2 El grfico nos muestra una prueba de resistencia durante 7 das.

    Las pruebas de resistencia, tambin llamadas de estabilidad, son

    El objetivo de una prueba de resistencia/estabilidad es determinar ortamiento de la aplicacin a lo largo del tiempo y evaluar la

    degradacin del rendimiento derivada del uso sostenido.

    l tiempo de prueba ms comn suelen ser unas decenas de Un ejemplo tpico de prueba de carga podran ser: 30 usuarios,

    do una o dos peticiones por segundo cada usuario, con un periodo de crecimiento de 2 minutos y un periodo estable de 3 minutos. En una prueba de carga convencional difcilmente se va a poder apreciar la degradacin de rendimiento derivada del uso continuado del aplicativo durante das o

    de una prueba de resistencia es muy similar a una prueba de carga, se usa como referente el nmero de usuarios concurrentes

    das.

    una prueba de resistencia durante 7 das.

  • Prueba de stress

    Las pruebas de stress, a diferencia de las pruebas de cargapor objetivo determinar el punto de ruptura del servicio y analizar causas que suelen estar derivadas de problemas que scondiciones muy elevadas de carga: capacidad, fugas de memoria, condiciones de carrera, ...

    La prueba de stress se inicia con un nmero bajo de usuarios que se duplican ciclo a ciclo hasta que se determina eservicio. Se pueden simular peticiones continuas para aumentar la carga.

    Para este tipo de pruebas puede ser necesario utilizar tcnicas distribuidas de evaluacin, usando por tanto ms de un sistema, cuando es necesario simular cantidades tan altas de usuariosque un nico sistema es incapaz de generarlas.

    EJEMPLO 2-3 El grfico nos muestra el resultado de una prueba de stress Con una degradacin perceptible del servicio por encima de 160 usuarios concurrentes y con una ruptura del servicio por encima de los 320 usuarios concurrentes.

    Pruebas de Rendimiento TIC 33

    a diferencia de las pruebas de carga, tienen por objetivo determinar el punto de ruptura del servicio y analizar sus

    derivadas de problemas que suceden ante condiciones muy elevadas de carga: mala escalabilidad, agotamiento de capacidad, fugas de memoria, condiciones de carrera, ...

    La prueba de stress se inicia con un nmero bajo de usuarios que se duplican ciclo a ciclo hasta que se determina el punto de ruptura del

    Se pueden simular peticiones continuas para aumentar la carga.

    Para este tipo de pruebas puede ser necesario utilizar tcnicas distribuidas de evaluacin, usando por tanto ms de un sistema, cuando es

    tidades tan altas de usuarios y peticiones por segundo que un nico sistema es incapaz de generarlas.

    El grfico nos muestra el resultado de una prueba de stress bsica. Con una degradacin perceptible del servicio por encima de 160

    oncurrentes y con una ruptura del servicio por encima de los 320 usuarios concurrentes.

  • 34 Entrando en materia | 2

    Pruebas de variacin de carga o pruebas de picos de carga

    Las pruebas de variacin de carga ( o pruebas de picos de carga ) es un tipo muy concreto de prueba de stsistema de informacin a unas condiciones a las habituales (pico de carga), de tal forma que se pueda determinar qu sucedera ante una avalancha puntual de usuarios (escalabilidad, recuperacin de recursos, ...)

    En este tipo de pruebas se parte del volumen normal de usuarioconcurrentes del aplicativo y se introducen La situacin idnea es que no exista pendiente entre las lneas que unen las cotas superior e inferior en las iteraciones de la prueba.

    EJEMPLO 2-4 El grfico nos muestra el resultado de una prueba de picos de carga donde se parte de un escenario base habitual de 30 usuarios concurrentes, se triplica esa carga yuna serie 6 iteraciones.

    o pruebas de picos de carga

    Las pruebas de variacin de carga ( o pruebas de picos de carga ) es un tipo muy concreto de prueba de stress que tiene por objetivo exponer al sistema de informacin a unas condiciones de carga varias veces superiores a las habituales (pico de carga), de tal forma que se pueda determinar qu

    valancha puntual de usuarios (escalabilidad,

    En este tipo de pruebas se parte del volumen normal de usuarios se introducen alternamente los picos de carga.

    La situacin idnea es que no exista pendiente entre las lneas que unen las uperior e inferior en las iteraciones de la prueba.

    El grfico nos muestra el resultado de una prueba de picos de carga donde se parte de un escenario base habitual de 30 usuarios

    triplica esa carga y se vuelve al escenario base, en

  • Pruebas de capacidad

    En todas las pruebas anteriores las adelante hablaremos de ellas) son medidaspruebas de capacidad la gran diferencia es el tipo mide: consumo de CPU, memoria, ...

    En una prueba de capacidad se puede simular varias formas: como en una prueba de carga (usuarios estimados), como una prueba de resistencia (usuarios estimados prueba de stress (crecimiento de usuarios

    El objetivo, en todos los casos, determinado nmero de usuarios a los valores de capacidad del sistema de informacin.

    EJEMPLO 2-5 Resultado de una prueba de capacidad creciente (2GB de disco por usuario)comportamiento adecuado hasta 80 usuarios concurrentes.lmite de capacidad est en

    Pruebas de Rendimiento TIC 35

    En todas las pruebas anteriores las medidas que se usan (ms ablaremos de ellas) son medidas externas. Sin embargo, en las

    pruebas de capacidad la gran diferencia es el tipo de parmetro que se , memoria, ...

    na prueba de capacidad se puede simular el uso del sistema de una prueba de carga (usuarios estimados), como en

    una prueba de resistencia (usuarios estimados y tiempo) o como en una ueba de stress (crecimiento de usuarios hasta agotamiento de capacidad).

    , en todos los casos, es medir cmo afecta un determinado nmero de usuarios a los valores de capacidad del sistema de

    e capacidad para un nmero de usuarios (2GB de disco por usuario). El sistema muestra un

    comportamiento adecuado hasta 80 usuarios concurrentes. El 160 usuarios concurrentes.

  • 36 Entrando en materia | 2

    2.2|PERSPECTIVA DE EVALUACIN A la hora de realizar una prueba de rendimiento, da igual de cul de todos los tipos que hemos comentado con anterioridad hagamos, siempre aparece la duda sobre lo que se conoce como que traducido a palabras mucho ms sencilla significgenerar las peticiones de la prueba y qu visin me va a dar esa, llammosla, ubicacin?

    A continuacin vamos a ver las 4 ubicaciones ms comunes para la ejecucin de una prueba de rendimiento, agrupadas dos a dos en funcin de su finalidad.

    Perspectivas de anlisis interno

    Las perspectivas para anlisis interno agrupan aquellas ubicaciones que dejan fuera de la ecuacin la perspectiva del usuariode la red.

    Su principal ventaja es el significativo ahorro de costes y lsencillez de las mismas. Obviamente, su principal desventaja es quemuy precisos que seamos en la evaluacin del rendimientoser, en el mejor de los casos, evaluado desde nuestra propia red interna.

    Anlisis desde el propio sistema

    Esta es la forma ms bsica de anlisis. Consiste, como su propio nombre indica, en realizar las pruebas de rendimiento desde el mismo sistema que queremos evaluar.

    Las ventaja principal es la sencillez. adicional, no congestionamos la red, no ...

    Las desventajas tambin existen. La primera tiene que ver con la precisin de la prueba, sobre todo en pruebas de alta carga, ya que nuestra propia actividad de evaluacin genera carga sobre el sistema. La segunda es el hecho de no evaluar el rendimiento de la red. La tercera es la cantidad de

    CIN ra de realizar una prueba de rendimiento, da igual de cul de

    todos los tipos que hemos comentado con anterioridad hagamos, siempre aparece la duda sobre lo que se conoce como perspectiva de evaluacin y que traducido a palabras mucho ms sencilla significa: desde dnde

    la prueba y qu visin me va a dar esa,

    A continuacin vamos a ver las 4 ubicaciones ms comunes para la ejecucin de una prueba de rendimiento, agrupadas dos a dos en funcin de

    Las perspectivas para anlisis interno agrupan aquellas ubicaciones la perspectiva del usuario y la visin externa

    Su principal ventaja es el significativo ahorro de costes y la relativa sencillez de las mismas. Obviamente, su principal desventaja es que, por muy precisos que seamos en la evaluacin del rendimiento, ste siempre

    en el mejor de los casos, evaluado desde nuestra propia red interna.

    Esta es la forma ms bsica de anlisis. Consiste, como su propio nombre indica, en realizar las pruebas de rendimiento desde el mismo sistema que queremos evaluar.

    Las ventaja principal es la sencillez. No necesitamos equipo tionamos la red, no ...

    Las desventajas tambin existen. La primera tiene que ver con la precisin de la prueba, sobre todo en pruebas de alta carga, ya que nuestra propia actividad de evaluacin genera carga sobre el sistema. La segunda es

    evaluar el rendimiento de la red. La tercera es la cantidad de

  • carga que podemos generar usando un nico sistema y que puede ser insuficiente para segn qu tipo de pruebas.

    Este mtodo puede ser recomendable para la realizacin de pruebas bsicas de carga en el entorno de preproduccin. Por contra es desaconsejado para la realizacin de otro tipo de pruebas.

    Anlisis desde la red interna

    Esta es la forma ms comn de anlisis en pruebas realizadas "en casa". Consiste, como su propio nombre indica, en realizar las pruebas de rendimiento desde uno o varios sistemas de la propia red en la que se encuentra el sistema a evaluar.

    Sus principales ventajas son el solucionar gran parte de las deficiencias la ejecucin de la prueba desde el propio sistema (meprecisa, cantidad de carga, carga de red) adems de poderse aplicar a cualquiera de los tipos de pruebas que existen: carga, stress, picos, resistencia, capacidad, ...

    El nico inconveniente es que, como no puede ser de otra forma, no se tiene en cuenta el rendimiento del sistema desde la red externa, quedando sin evaluar algunas situaciones (problemas de peering, enrutamiento, ...) que pueden afectar al rendimiento del sistema cuando se usa desde el exterior.

    Este mtodo es el ms adecuado parprueba donde no se quiera tener en cuenta la visin del usuario externo.

    Pruebas de Rendimiento TIC 37

    carga que podemos generar usando un nico sistema y que puede ser insuficiente para segn qu tipo de pruebas.

    Este mtodo puede ser recomendable para la realizacin de ga en el entorno de preproduccin. Por contra es

    desaconsejado para la realizacin de otro tipo de pruebas.

    comn de anlisis en pruebas realizadas "en casa". Consiste, como su

    realizar las pruebas de rendimiento desde uno o varios sistemas de la propia red en la que se encuentra el sistema a evaluar.

    Sus principales ventajas son el solucionar gran parte de las deficiencias la ejecucin de la prueba desde el propio sistema (medida poco precisa, cantidad de carga, carga de red) adems de poderse aplicar a cualquiera de los tipos de pruebas que existen: carga, stress, picos,

    El nico inconveniente es que, como no puede ser de otra forma, n cuenta el rendimiento del sistema desde la red externa,

    quedando sin evaluar algunas situaciones (problemas de peering, enrutamiento, ...) que pueden afectar al rendimiento del sistema cuando se

    Este mtodo es el ms adecuado para la realizacin de cualquier prueba donde no se quiera tener en cuenta la visin del usuario externo.

  • 38 Entrando en materia | 2

    Perspectivas de anlisis externo

    Las perspectivas para anlisis externo que intentan evaluar el rendimiento desde la persaportar una visin externa del rendimiento

    Su principal ventaja que aportan una visin ms precisa de cmo un usuario final que opera desde fuera de nuestra red interna percibe el rendimiento del sistema de informacinpor un lado el coste, y por otro la complejidad en la ejecucin de la prueba.

    Anlisis desde la nube

    Esta es la forma ms comn de anlisis en pruebas realizadas desde el exterior, sobre todo la realizadas por terceros. Consiste en pruebas de rendimiento desde uno o varios sistemas ubicados en un proveedor externo de red.

    La principal ventaja es que, dentro de la complejidad de este tipo de pruebas externas, es la menos compleja, obteniendo un resultado similar al ejecutado desde red interna pero incluyendo en la ecuacin el anlisis externo del rendimiento.

    Su desventaja ms significativa, respecto al anlisis interno, es el coste, no slo de alquiler de equipos, sino tambin de adecuacin de esos equipos (p.ej. instalacin y configuracin de herramientas) para que sean tiles como entorno de pruebas. No obstante, las arquitecturas cloud, con el cobro por uso puntual y la posibilidad de importar mquinas virtuales limitan las desventajas.

    Este mtodo es el ms adecprueba donde se quiera tener en cuenta la visin del usuario externo (parcial) y el rendimiento externo de la red.

    s externo agrupan aquellas ubicaciones intentan evaluar el rendimiento desde la perspectiva del usuario y

    aportar una visin externa del rendimiento.

    que aportan una visin ms precisa de cmo un usuario final que opera desde fuera de nuestra red interna percibe el rendimiento del sistema de informacin. Sus principales desventajas son, por un lado el coste, y por otro la complejidad en la ejecucin de la prueba.

    Esta es la forma ms comn de anlisis en pruebas realizadas desde el exterior, sobre todo la realizadas por terceros. Consiste en realizar las pruebas de rendimiento desde uno o varios sistemas ubicados en un proveedor externo de red.

    La principal ventaja es que, dentro de la complejidad de este tipo de pruebas externas, es la menos compleja, obteniendo un resultado similar

    tado desde red interna pero incluyendo en la ecuacin el anlisis

    Su desventaja ms significativa, respecto al anlisis interno, es el coste, no slo de alquiler de equipos, sino tambin de adecuacin de esos

    lacin y configuracin de herramientas) para que sean tiles como entorno de pruebas. No obstante, las arquitecturas cloud, con el cobro por uso puntual y la posibilidad de importar mquinas virtuales

    Este mtodo es el ms adecuado para la realizacin de cualquier prueba donde se quiera tener en cuenta la visin del usuario externo (parcial) y el rendimiento externo de la red.

  • Anlisis desde la perspectiva del usuario

    Esta es una forma poco comn de anlisislimitada nicamente a grandes pruebas de rendimiento donde la visin del usuario es fundamental y donde adems el enfoque del servicio es globalheterogneos y ubicaciones de red dispersas.

    Este tipo de evaluacin rendimiento desde mltiples ubicaciones y sistemas que simulen, de la forma ms precisa posible, los distintos perfiles de usuario del sistema y sus condiciones de acceso.

    La principal ventaja es la capacidad de la prueba para hasta el lmite que imponga nuestro bolsillo e imaginacin, la realidad del acceso de usuarios a un aplicativo de uso global.

    Su desventajas son, en consonanciadificultad, los recursos, el tiempo ...

    Este mtodo slo es recomendable para casodonde se determina que los otros mtodos son insuficientes.

    Una visin conjunta: las pruebas de capacidad

    Hay una situacin un tanto particular que se da cuando lo que queremos medir es la capacidad del sistema de informacin (uso de memoria, disco, estado de un proceso, ...

    En este caso concreto, es obvio que no nos vale slo con la informacin que podramos obtener desde (da igual que fuese desde la red local, puntos externos), sino que adicionalmente necesitamos la visin desde el propio sistema.

    No obstante, en esta situacinpeticiones desde el exterior del sistemamedir el impacto que estamos gendeseamos controlar. Este impacto se puede medir en los logs, en la

    Pruebas de Rendimiento TIC 39

    Anlisis desde la perspectiva del usuario

    forma poco comn de anlisis, mente a grandes pruebas de rendimiento

    donde la visin del usuario es fundamental y donde adems el enfoque del servicio es global; con usuarios

    dispersas.

    consiste en realizar las pruebas de miento desde mltiples ubicaciones y sistemas que simulen, de la

    forma ms precisa posible, los distintos perfiles de usuario del sistema y sus

    La principal ventaja es la capacidad de la prueba para reproducir, imponga nuestro bolsillo e imaginacin, la realidad del

    acceso de usuarios a un aplicativo de uso global.

    en consonancia, el coste, la complejidad, la

    slo es recomendable para casos muy puntuales donde se determina que los otros mtodos son insuficientes.

    Una visin conjunta: las pruebas de capacidad

    Hay una situacin un tanto particular que se da cuando lo que queremos medir es la capacidad del sistema de informacin (uso de CPU,

    estado de un proceso, ...).

    En este caso concreto, es obvio que no nos vale slo con la informacin que podramos obtener desde el exterior del sistema evaluado

    que fuese desde la red local, desde la nube o desde mltiples ), sino que adicionalmente necesitamos la visin desde el

    No obstante, en esta situacin, lo ms correcto es generar las desde el exterior del sistema. Y desde el interior, nicamente,

    medir el impacto que estamos generando en aquellos parmetros que Este impacto se puede medir en los logs, en la

  • 40 Entrando en materia | 2

    informacin estadstica del sistema o mediante un sistema de monitorizacin.

    Por qu hacerlo as? Bsicamente para limitar el impacto que causara generar las peticiones desde el propio sistema.

    Tabla resumen

    Para finalizar este apartado vamos a ver una tabla resumen de las distintas ubicaciones, sus principales ventajas, inconvenientes y su uso recomendado.

    Ubicacin Ventajas Inconvenientes Recomendado sistema Sencillez falta de precisin preproduccin

    red interna verstil, buena precisin, rcp no visin externa uso comn nube verstil, buena precisin, visin externa coste y tiempo visin externa

    usuario excelencia / precisin complejo, coste, tiempo casos puntuales TABLA 2-1

  • Pruebas de Rendimiento TIC 41

    2.3 | MEDIDAS Y MTRICAS Hasta ahora hemos visto tipos de pruebas y tambin perspectivas de ejecucin de las pruebas, y aunque hemos nombrado algunas medidas y algunas mtricas, e incluso hemos pintado grficos en las que se pueden ver reflejadas, hemos pasado un poco por encima de ellas.

    No tiene sentido retrasarlo mucho ms, as que en este apartado vamos a hablar de qu parmetros, medidas y mtricas, son los que comnmente nos sirven para evaluar una prueba de rendimiento.

    Medidas vs. Mtricas

    Muchas veces usamos ambas palabras de forma indistinta, solapamos sus significados sin darnos mucha cuenta de ello, y termina resultando que una medida y una mtrica son lo mismo. Sin embargo, no lo son.

    Una medida, del ingls measure, consiste en la obtencin de un parmetro concreto y cuantitativo.

    EJEMPLO 2-6 Medidas son: tiempo de respuesta, nmero de errores o uso de disco.

    Sin embargo, una mtrica es el resultado de utilizar una o varias medidas, dotarlas de un contexto y evaluar su evolucin, de tal forma que se pueda obtener informacin til (valor) a partir de ellas.

    EJEMPLO 2-7 Una mtrica es: Tiempo medio de respuesta por nmero de usuarios. Mtrica que se construye a partir de las medidas tiempo de respuesta y nmero de usuarios.

  • 42 Entrando en materia | 2

    EJEMPLO 2-8 El siguiente grfico muestra la diferencia entre una mtrica y una medida. La mtrica "tiempo medio de respuesta segn nmero de usuarios concurrentes" refleja el valor compuesto por la media de todos los tiempos de respuesta obtenidos durante la prueba segn el nmero de usuarios. Mientras que nmero de errores es slo una medida. La informacin til que aporta la mtrica es superior a la que aporta la medida y es ms difcil de distorsionar. Una medida como errores puede distorsionarse rpidamente con que, por un motivo cualquiera, un slo usuario sufra un problema.

    Medidas externas

    Este conjunto de medidas son aquellas que podemos obtener, como su propio nombre indica, desde el exterior del sistema evaluado.

    Las ms importantes son:

    Tiempo de respuesta (ms): Nmero de milisegundos que el sistema tarda en contestar una peticin.

    0

    50

    100

    150

    200

    250

    300

    20 25 30 25 40

    Valor

    es

    Usuarios concurrentes

    Ejemplo 2-8 | Medida vs. Mtrica

    Tiempo medio(s)Errores

  • Pruebas de Rendimiento TIC 43

    Errores (n o %): Nmero de errores que obtengo al realizar un nmero determinado de peticiones al sistema.

    Usuarios y peticiones (n): Nmero de usuarios realizando un nmero total de peticiones. Fundamental para el clculo de rendimiento.

    Existen otras, secundarias como son:

    Latencia de red (ms): Nmero de milisegundos que el sistema tarda en recibir y devolver la informacin.

    Tiempo de procesamiento (ms): Nmero de milisegundos que el sistema pasa procesando la informacin. Aprox. Tiempo de respuesta - Latencia.

    Medidas internas

    Este conjunto de medidas son aquellas que para obtenerlas, necesitamos extraer informacin del sistema evaluado, siendo imposible acceder a ellas desde el exterior.

    Las medidas internas est relacionadas con las pruebas de capacidad y existen tantas, y tan variadas, como elementos contenga el sistema de informacin a evaluar. Las ms comunes son las siguientes:

    Uso de recursos del sistema (CPU, memoria, disco, ...): Cantidad de un determinado recurso consumida globalmente por el sistema durante la prueba de capacidad.

    Uso de recursos de un determinado proceso (CPU, memoria, disco, sockets abiertos, ...): Cantidad de un determinado recurso consumida por un proceso concreto.

    Informacin contenida en logs: Informacin que el sistema, o un determinado proceso, registran en ficheros de logs.

  • 44 Entrando en materia | 2

    Informacin del sistema de monitorizacin: Conjunto de parmetros del sistema o de los procesos controlados automticamente por el sistema de monitorizacin y que permiten medir el uso de recursos internos de un sistema.

    OBSERVACIN 2-1. Medida vs. Perspectiva.

    Es importante distinguir entre medidas y perspectivas de evaluacin. La perspectiva de evaluacin indica el lugar desde el que se generan las peticiones (sistema, red, nube, ...). Mientras que la medida, bien sea externa o interna, indica en base a qu obtenemos la informacin.

    Muy importante que tengamos claro que una perspectiva de evaluacin desde red (o desde la nube) puede contener medidas internas.

    Construyendo mtricas

    La construccin de mtricas tiles es una tarea bsica de la fase de planificacin y diseo de una prueba de rendimiento. Se pueden construir mtricas tan sencillas como usar una medida (recordemos el ejemplo de errores) o tan complicadas como nuestra imaginacin nos lo permita.

    Sin embargo, el objetivo de una mtrica no es ser ni sencilla, ni complicada, sino facilitarnos una informacin que nos sea relevante. No obstante, cuanta ms informacin queramos que contenga una mtrica, ms medidas necesitar y, a la vez, ms globalizar el resultado.

    Si nos contentamos con una mtrica que sea tiempo medio de respuesta por sistema podremos construir la mtrica con la informacin que recogemos de un nico sistema. En cambio, si queremos una mtrica que sea tiempo medio de respuesta de los servicios web pblicos necesitaremos realizar pruebas de rendimiento, equivalentes, en todos los sistemas implicados y luego obtener la mtrica.

    Las mtricas ms usuales son las medias, las medianas y las variaciones sobre un conjunto de medidas, internas o externas, sobre las

  • Pruebas de Rendimiento TIC 45

    que se realiza un determinado filtro o agrupacin. De tal forma podramos tener las siguientes mtricas iniciales ms comunes:

    Nmero de peticiones atendidas por unidad de tiempo (n/t) Tiempo medio de respuesta (ms) Mediana del tiempo de respuesta (ms) Variacin media del tiempo respuesta (ms) Nmero medio de errores (n) Mediana del nmero de errores (n) Variacin media del nmero de errores (n) Uso medio de recursos de sistema (CPU, memoria, ...) Mediana del uso de recursos de sistema (CPU, memoria, ...) Variacin media del uso de recursos de sistema (CPU, memoria,

    ...) ...

    Sobre estas mtricas iniciales se establecen una serie de filtros o agrupaciones; los ms usuales son los siguientes:

    Por sistema: El filtro ms inmediato y sencillo es agrupar los datos por sistema evaluado.

    Por nmero de usuarios: El segundo filtro ms comn es agrupar los datos en funcin de nmero de usuarios que se han utilizado en la prueba de rendimiento.

    Por fechas y horas: Esta agrupacin requiere repetir las mismas pruebas en distintas horas ( o das ).

    Por servicio: Esta agrupacin requiere realizar las mismas pruebas para todos los elementos frontales de un servicio.

    Y as podramos seguir durante pginas y pginas, mientras nuestra imaginacin lo permitiese... pero no parece que sea necesario.

  • 46 Entrando en materia | 2

    2.4 | EVALUACIN DE ARQUITECTURAS MULTICAPA La evolucin hacia sistemas cuya interaccin con el usuario es "100% web" avanza imparable, con pequeas excepcioneselectrnico. Esto hace que las arquitecturas ITadecen a esa realidad. El diagrama aspecto de un sistema IT actual de cara a sus usuarios.

    A efectos de evaluacin de rendimiento, podemos frontales web se concentra el grueso del trfico proveniente del usuariocanalizado a travs de la red de acceso, informacin: servidores de aplicacin, bases de datos, otros servicios IP (correo electrnico, autenticacin, firma digital, servidores de ficheros, ...); as como, en caso de existir, a la red de almacenamiento.

    CTURAS MULTICAPA temas cuya interaccin con el usuario es

    pequeas excepciones como el correo electrnico. Esto hace que las arquitecturas IT, y la forma de evaluarlas, se

    El diagrama de la [Figura 2.1] intenta mostrar el aspecto de un sistema IT actual de cara a sus usuarios.

    A efectos de evaluacin de rendimiento, podemos ver que en los

    se concentra el grueso del trfico proveniente del usuario, canalizado a travs de la red de acceso, y cmo se reparte por el sistema de informacin: servidores de aplicacin, bases de datos, otros servicios IP (correo electrnico, autenticacin, firma digital, servidores de ficheros, ...);

    como, en caso de existir, a la red de almacenamiento.

  • Pruebas de Rendimiento TIC 47

    Este tipo de arquitectura hace que, a da de hoy, un nmero muy elevado de las evaluaciones de rendimiento se realice exclusivamente sobre servicios y aplicativos web, y a partir de ellos se evale la totalidad del rendimiento del sistema:

    Rendimiento de red: Entendido como la adecuacin de la red al volumen de peticiones generadas en la evaluacin. Las tcnicas ms comunes son la comparacin entre la latencia y el tiempo de procesamiento, as como las medidas de capacidad de los elementos de red.

    Rendimiento de servicio web: Evaluados directamente a partir del trfico enviado a ellos por los scripts de evaluacin.

    Rendimiento de elementos interconectados a los servicios web: El rendimiento de bases de datos, servidores de aplicacin o de servicios de red IP, se mide en este caso en base a la peticiones en cascada que se generan a partir de las realizadas al servicio web.

    No obstante, aunque es cierto que la arquitectura multicapa nos permite este tipo de evaluacin, no podemos dejar de atender a las dos observaciones que haremos a continuacin; dado que condicionan por completo los resultados que obtendremos.

    OBSERVACIN 2-2. Medidas globales vs. especficas.

    Al evaluar una arquitectura multicapa podemos optar por una medida global de rendimiento o no hacerlo.

    Un ejemplo de medida global es el tiempo de respuesta a una peticin. Una nica medida que engloba el rendimiento de todo el sistema de informacin.

  • 48 Entrando en materia | 2

    Sin embargo, esta medida puede ser insuficiente. En ese caso se debe optar por evaluar el rendimiento de los elementos que interactan para atender al usuario.

    La forma ms frecuente y usual de evaluar el rendimiento es mediante el uso de medidas de capacidad (CPU, memoria, procesos, ...) para cada elemento que interconecta con el servicio web sobre el que se ejecuta la prueba; para ello es muy til disponer de monitorizacin en los sistemas evaluados.

    Los resultados de ambas opciones, es obvio, son distintos. En la primera opcin tendremos un nico valor que daremos por bueno, o no, en funcin del contexto. En la segunda opcin vamos a ser capaces de discernir qu elementos puntuales son los que estn impactando negativamente en el rendimiento.

    OBSERVACIN 2-3. Evaluacin de arquitecturas complejas.

    Esta observacin es fundamental en la evaluacin de arquitecturas complejas. Al evaluar una arquitectura de cierta envergadura, sera muy extrao disponer de elementos independientes para cada uno de los servicios web que la componen. Lo habitual es que bastantes elementos sean compartidos entre distintos servicios web.

    En estos casos, evaluar un nico servicio web, obvia o sesga el impacto en el rendimiento del resto de servicios web que comparten arquitectura; teniendo una utilidad limitada a la deteccin de errores en el propio servicio evaluado (gestin incorrecta de conexiones (bbdd, ldap,...), condiciones de carrera, liberacin incorrecta de recursos, ...)

    Este sesgo se magnifica en elementos que atienden a todos los servicios del sistema de informacin: correo electrnico, servicio LDAP, ...

  • Ganando precisin en la evaluacin de

    Cuando nos encontramos una arquitectura multicapa que se corresponde 1:1 con un servicio, es decir, cuando la red de acceso, los servidores web, de aplicacin, de bases de datos y cualesquiera otros, nicamente atienden a un servicio, la evaluacin a travs del frontal web tiene una precisin suficiente y adecuada

    Sin embargo, como hemos visto en la momento que la relacin deja de ser 1:1 y pasa a ser N:1, varios servicios comparten una infraestructura comn, hora de evaluar el rendimiento.

    Por tanto, vamos a ver qu posibilidades tenemos para afinar la evaluacin del rendimiento.

    Anlisis de servicios web con dependencias comunes

    Esta aproximacin es til paservicios web que comparten arquitectura no es muy elevado.sencilla: extender el anlisis de rendimiento a todos los servicios web que comparten la arquitectura multicapa.

    La principal ventaja de esta aproximacin es la homogeneidad de la prueba, puesto que toda ella se realizar haciendo uso de las mismas herramientas y del mismo protocolo de comunicacin (HTTP/HTTPS).

    El inconveniente se produce en redes con gran cantidad de servicios web y una infraestructura compartida.

    Pruebas de Rendimiento TIC 49

    valuacin de arquitecturas multicapa

    Cuando nos encontramos una arquitectura multicapa que se corresponde 1:1 con un servicio, es decir, cuando la red de acceso, los servidores web, de aplicacin, de bases de datos y cualesquiera otros,

    n a un servicio, la evaluacin a travs del frontal web y adecuada.

    Sin embargo, como hemos visto en la Observacin 2-3, en el momento que la relacin deja de ser 1:1 y pasa a ser N:1, varios servicios

    ructura comn, surgen problemas de precisin a la

    Por tanto, vamos a ver qu posibilidades tenemos para afinar la

    con dependencias comunes

    Esta aproximacin es til para casos en los que el nmero de que comparten arquitectura no es muy elevado. La idea es

    extender el anlisis de rendimiento a todos los servicios web que comparten la arquitectura multicapa.

  • 50 Entrando en materia | 2

    Anlisis de infraestructura compartida no web

    La segunda forma de ganar precisin en la evaluacin de arquitecturas multicapa es adecuada para aquellos casos en la que la evaluacin de servicios web implicara analizar un gran nmero de ellos (o todos), haciendo intil la aproximacin anterior o para aquellos servicios no web masivos (p.ej. correo electrnico).

    En esta alternativa, debemos evaluar, independientemente, cada uno de los elementos de la infraestructura compartida, valorando el rendimiento de cada uno de ellos y obteniendo como medidas de todo el sistema las peores de los elementos comunes.

    El principal problema es la prdida de homogeneidad: cada elemento hablar un protocolo distinto (HTTP, SQL, SMTP, POP, CIFS, ...) que nos obligar a usar diferentes herramientas.

    Tabla Resumen

    Para finalizar adjuntamos una tabla resumen que recoge las distintas posibilidades de anlisis y las recomendaciones de uso de las mismas.

    Anlisis ptimo Adecuada Problema Web nico Eval. 1:1 Deteccin Errores Eval. N:1

    Web Comn Eval. N:1; N3 Nmero de servicios No Web Eval. N:1; N>3 Eval. N:1; N

  • Pruebas de Rendimiento TIC 51

    2.5 | ANLISIS COMPARATIVO: PERFILES "BASE". Un "perfil base", en ingls baseline, por muy rimbombante que nos pueda sonar el nombre, no es ms que un tipo de mtrica muy particular, y relativamente sencilla, que sirve para realizar anlisis comparativo del rendimiento

    Empecemos por el principio. Cuando hacemos una nica prueba de rendimiento, o una primera prueba, nuestros criterios de aceptacin o rechazo del rendimiento se van a basar en lo siguiente:

    Caso de mtricas externas: Las aceptaremos en base a criterios cualitativos de calidad de servicio. P.ej: Creemos aceptable que un servicio web tenga un tiempo medio de respuesta de 500ms.

    Caso de mtricas internas: Las aceptaremos en base a criterios cuantitativos lmite. P.ej. Aceptaremos que se consuma hasta el 85% de un determinado recurso: memoria, disco, CPU...

    Sin embargo, una vez que hemos aceptado, en base a las mtricas que hemos obtenido, la prueba de rendimiento, hemos creado (quiz sin pretenderlo) lo que se conoce como un "perfil base".

    Es decir, tenemos un marco de referencia de mtricas de rendimiento (tiempo de respuesta, errores, usuarios concurrentes, capacidad, ...) que podemos utilizar para realizar anlisis comparativo.

    Un "perfil base" es por tanto una mtrica que se compone de todas las mtricas que han formado la prueba de rendimiento realizada y que tiene la caracterstica de ser esttica en el tiempo. Es decir, los valores del "perfil base" son siempre los mismos hasta que se decida su actualizacin.

  • 52 Entrando en materia | 2

    "Perfiles Base": Ciclo de Vida

    En la [Figura 2.3] podemos ver cul es el ciclo de vida de un "Perfil Base".

    Prueba de Rendimiento Inicial: Prueba de rendimiento que se realiza sin que exista ningn "perfil base" sobre el que realizar anlisis comparativo.

    Aceptacin de Mtricas: Conjunto de criterios cualitativos y cuantitativos que aplicamos a una prueba de rendimiento inicial para determinar si es aceptada.

    Obtencin del Perfil Base: Conjunto de mtricas que han resultado aceptadas en la prueba de rendimiento inicial.

    Anlisis Comparativo: Comparacin de valores obtenidos en una nueva prueba de rendimiento con los del "perfil base".

    Actualizacin del Perfil: Actualizacin de los valores usados como mtricas en el "perfil base".

    Prueba Rendimiento

    InicialAceptacin de

    MtricasObtencin de "Perfil Base"

    Anlisis Comparativo

    Actualizacin de "Perfil"Figura 2.3

  • Pruebas de Rendimiento TIC 53

    Anlisis comparativo: El error ms comn.

    El anlisis consiste en algo que, a priori, parece sencillo: comparar un "perfil base" creado sobre un conjunto de elementos N1 en un momento del tiempo T1, con las mismas mtricas extradas en un momento del tiempo T2 sobre un conjunto de elementos N2.

    Sin embargo, hay algo que es fundamental para que todo esto sirva de algo: los elementos de N1 y N2 nicamente pueden diferir en aquellos sobre los que queremos obtener comparacin.

    Es decir, si estamos haciendo una prueba de rendimiento de un aplicativo web W1, sobre el que tenamos un "perfil base" para su versin 2014.01 y queremos comparar el rendimiento con la nueva versin 2014.02; debemos garantizar que el resto de elementos son los mismos: servidor web, servidor de aplicacin, servidor de bases de datos, etc. La correspondencia tambin se aplica en sentido contrario, si queremos ver cmo los cambios en la infraestructura IT afectan al rendimiento del aplicativo web, debemos hacerlo sobre la misma versin del servicio.

    En el momento que uno de estos elementos haya cambiado, el anlisis comparativo perder precisin. Cunta? Pues depende lo significativos que sean los cambios. Si, por ejemplo, el cambio es que hemos pasado de la versin de Apache 2.2.24 a 2.2.25, puede ser que "despreciable". En cambio, si el cambio consiste en pasar de la versin 2.2 de Apache, a la versin 2.4 el cambio puede ser bastante significativo, y por tanto el "perfil base" no tener ningn valor.

    Casos de utilidad de "perfiles base"

    Una vez que sabemos qu son, vamos a ver para qu podemos usarlos realmente.

    Comparar versiones del mismo servicio: Si hemos creado un "perfil base" para un servicio, podemos comparar (mientras lo evaluemos en la misma infraestructura) diferentes versiones del mismo servicio y si el rendimiento mejora o empeora.

  • 54 Entrando en materia | 2

    Comparar el rendimiento de cambios en la infraestructura IT: Si hemos creado un "perfil base" para un servicio, podemos comparar (mientras evaluemos la misma versin del servicio) diferentes cambios en la infraestructura: nuevas versiones de base de datos, nuevas versiones de servidor de aplicacin, nuevos productos sustitutivos, ...

    Comparar entre mltiples servicios: Un "perfil base" no tiene porqu ser usado siempre sobre el mismo servicio. Ni tampoco provenir de un nico servicio. Si tenemos un servicio S1 y conjunto de servicios S2,S3... independientes2; podemos usar el mismo "perfil base" siempre que queramos que todos servicios homogenicen su rendimiento. Es ms, el "perfil base" puede provenir de la primera prueba de rendimiento realizada a S1; o de la unin de varias de ellas.

    OBSERVACIN 2-4. Perfiles base demasiado genricos.

    Un error en el que se puede caer a la hora de construir y utilizar perfiles base es en hacerlos excesivamente "genricos" de tal forma que al final no signifiquen nada.

    No hay nada de errneo en usar un perfil base para varios servicios que, de manera lgica, deben tener un rendimiento similar. Sin embargo, a poco que tengamos un sistema complejo, no tiene ningn sentido intentar aplicar un nico "perfil base" a todo el sistema de informacin. Cunto generalizar? Hay que aplicar el sentido comn.

    2 Ver Observacin 2-3. La problemtica que encontraremos en arquitecturas compartidas ser la misma.

  • EJEMPLO 2-9 A continuacin, vamos a ver el uso de un "perfil base" muy sencilloslo incluye el tiempo medio de respuesta,rendimiento de la evolucin de un aplicativo webdiferentes versiones.

    Actualizar el "perfil base"

    Este es el ltimo punto del ciclo de vida de un "perfil base": su actualizacin.

    Puesto que aunque un perfil base tiene un valor "esttico" en el tiempo, llega un momento donde ese valor no significa absolutamente nada debido a que la evolucin del sistema, o del aplicativo.

    Por tanto, la actualizacin del "perfil base" es la decisin, podemos decir estratgica, de "sustituir" el valor de las mtricas que lo componen cuando estimamos que nuevos valores se adecan mejor a la realidad.

    Pruebas de Rendimiento TIC 55

    A continuacin, vamos a ver el uso de un "perfil base" muy sencillo, slo incluye el tiempo medio de respuesta, para valorar el

    la evolucin de un aplicativo web entre sus

    Este es el ltimo punto del ciclo de vida de un "perfil base": su

    Puesto que aunque un perfil base tiene un valor "esttico" en el tiempo, llega un momento donde ese valor no significa absolutamente nada

    sistema, o del aplicativo.

    Por tanto, la actualizacin del "perfil base" es la decisin, podemos decir estratgica, de "sustituir" el valor de las mtricas que lo componen cuando estimamos que nuevos valores se adecan mejor a la realidad.

  • 56 Entrando en materia | 2

    2.6 | USUARIOS: GLOBALES, DEL SERVICIO, POR MES/DA/HORA, ACTIVOS VS. SIMULTNEOS VS. CONCURRENTES... Como ltimo punto de este captulo, ya bastante extenso, vamos a tratar el aspecto del nmero de usuarios. Al hablar de usuarios, pasa algo similar como con los tipos de pruebas y tendemos a mezclar conceptos. Por eso vamos a intentar aclarar los tipos de usuarios que principalmente encontramos cuando hacemos una prueba de rendimiento y su papel en ellas.

    Usuarios globales

    El primer tipo de usuario son los usuarios globales, es decir, el nmero de usuarios de nuestro sistema de informacin.

    Sin embargo, a efectos de ejecutar pruebas de rendimiento, al menos en este libro, siempre vamos a hablar a nivel de servicios y de usuarios del servicio, por lo que podemos olvidarnos de ellos. En todo caso, si slo tenemos un servicio, o si hablamos de un servicio usado por todos los usuarios, ambas cifras coincidirn. En caso contrario, no.

    Usuarios del servicio

    Como su nombre indica es el nmero total de usuarios de un servicio. Este tipo de usuario, de cara a una prueba de rendimiento tiene especial significancia para valoracin de medidas de capacidad de persistentes: quotas de disco, buzones de correo, tablas de base de datos, etc.

    Sin embargo, su importancia, es escasa en la valoracin del resto de medidas que no presentan persistencia en el sistema cuando no existe actividad: uso de CPU, memoria, red, tiempo de respuesta, etc. Para las que usaremos usuarios por mes/da/hora.

  • Pruebas de Rendimiento TIC 57

    Cmo obtener su nmero?

    Los usuarios del servicio nos interesan cuando hay persistencia de informacin en el sistema. Esta persistencia, por fortuna para simplicidad de nuestros clculos, en la amplia mayora de los casos va a estar ligada a usuarios registrados. Por tanto, en la amplia mayora de los servicios, a nuestros efectos, el dato que queremos conocer son los usuarios registrados.

    En el caso de tratarse de un servicio pblico con persistencia de informacin (p.ej. administracin electrnica a ciudadanos, almacenaje de ficheros annimo, ...) deberemos usar como usuarios del servicio una estimacin a partir de los usuarios mensuales.

    Usuarios por mes/da/hora

    Esta triada de valores, obtenidos generalmente unos a partir de otros, es la que nos servir, como veremos en el captulo 4, para establecer nuestras estimaciones de nmero de usuarios concurrentes que necesitamos simular en nuestras pruebas de rendimiento.

    Cmo obtener su nmero?

    Para esta labor necesitaremos bien procesar los logs por nosotros mismos. Bien un generador de estadsticas a partir de logs ( p.ej. AWStats ) que nos muestre una informacin similar a la siguiente.

    Mes Nmero de visitas Pginas Solicitudes Ene 2014 1,120 4,517 25,078 Feb 2014 1,222 5,119 26,833 Mar 2014 1,610 5,107 27,152 Abr 2014 1,452 5,540 20,400

    TABLA 2-3

  • 58 Entrando en materia | 2

    Usuarios activos vs. simultneos vs. concurrentes

    Este es posiblemente uno de los conceptos que ms malos entendidos causa a la hora de realizar pruebas de rendimiento. Vamos a intentar aclararlo.

    Un usuario activo es aquel que tiene una sesin abierta en el servicio, independientemente de que tenga actividad o no la tenga en ese momento. Cada una de estas sesiones, podemos presuponer que se corresponde con una visita.

    Los usuarios simultneos son aquellos que, en el mismo momento del tiempo, estn generando actividad en el servicio realizando una accin cualquiera. Debemos pensar que difcilmente en servicios interactivos vamos a tener ratios 1:1, es decir, difcilmente por cada usuario activo vamos a tener un usuario simultneo.

    Por ltimo, los usuarios concurrentes son aquellos que, exactamente en el mismo momento del tiempo, estn realizando exactamente la misma accin en el servicio. Nuevamente tendremos que el ratio usuario simultneo respecto concurrente muy extraamente va a ser 1:1. De hecho, salvo que se trate de una prueba de rendimiento, es muy improbable que suceda.

    En el captulo 4, dedicado a la planificacin de las pruebas de rendimiento, profundizaremos ms en este concepto, y analizaremos con exactitud qu es lo que nos interesa simular en nuestras pruebas y cul es la mejor forma de simularlo.

  • EJEMPLO 2-10 En la siguiente tabla podemos ver una simulacin de trfico en un servicio, que muestra las diferencias entre simultneos (2) y concurrente

    SESS\MSEC 10ms 20ms 30msSesin 1 Login Sesin 2 Login Sesin 3 Sesin 4 VerSesin 5 BuscarSesin 6 Perfil Sesin 7 Sesin 8 Perfil TABLA

    Para terminar vamos a generar unque ilustra la posible transmisin de informacin y las diferencias entre activo y simultneo.

    Pruebas de Rendimiento TIC 59

    En la siguiente tabla podemos ver una simulacin de trfico en un las diferencias entre usuarios activos (8),

    concurrentes (2).

    ms 40ms 50ms 60ms 70ms 80ms 90ms Perfil Salir Perfil Buscar Ver Buscar Salir Ver Buscar Ver Buscar Ver Buscar Ver ABLA 2-4

    generar un grfico, a partir de la [Tabla 2.4], que ilustra la posible transmisin de informacin y las diferencias

  • 60 Entrando en materia | 2

  • Pruebas de Rendimiento TIC 61

    HERRAMIENTAS | 3

    Un captulo ms, y si en el nmero dos hemos entrado en materia, en este nmero tres toca arremangarse para, definitivamente, meternos en faena. Hablar de herramientas, una vez que ms o menos hemos empezado a entender de qu va esto de hacer pruebas de rendimiento, es necesario para que conozcamos qu hay a nuestra disposicin para hacerlas. Y sin embargo, es algo que prcticamente todos los libros dedicados a esta materia evitan.

    Por qu? La excusa suele ser porque las herramientas cambian, o porque cada uno ejecuta la tarea con la que ms cmodo se siente, o porque lo importante es tener claros los conceptos. A este paso alguien dir que ha sido porque el perro se comi esas pginas.

    El hecho es que da igual por qu el resto de libros no tengan un captulo dedicado a este tema, salvo aquellos libros que especficamente se centran en una nica herramienta. Pero con nuestro objetivo en mente, escribir este captulo es fundamental para que alguien que nunca ha hecho una prueba de rendimiento tenga una idea general de por dnde van los tiros y qu funcionalidades tienen las herramientas. Si dentro de 10 aos las herramientas han cambiado, ya veremos si hacemos una versin 2.0 de este libro o si dejamos que cada uno se espabile por su cuenta. Pero, de momento, vamos a preocuparnos del presente. Empecemos. Qu veremos en este captulo?

    Rendimiento Web: las herramientas clsicas. Apache Benchmark, HTTPerf y AutoBench. El tro bsico de herramientas para hacer pruebas simples a arquitecturas HTTP y HTTPS. En uso desde hace ms de una dcada, y con capacidad para ayudarnos en determinados momentos.

  • 62 Herramientas | 3

    Rendimiento No Web: herramientas especficasvisto que hay situaciones en las que deberemos realizar pruebas de rendimiento en servicios no web, herramientas especficamente diseadas para correo electrnico, red, bases de datos ...

    JMeter: La navaja suiza. JMeter es la referencia hora de ejecutar pruebas de rendimientoherramienta a la que debemos acostumbrarnospara una prueba de carga a un servicio HTTP, que para una prueba de stress a un servidor LDAP. prueba desde un entorno GUI, y adems la simulacin de situaciones cercanas a las reales navegacin reales con un proxy incorporado, dispersin de eventos con temporizadores, inclusin de lgica en la

    Frameworks: scripting para gente elegante. de soluciones como JMeter, relativamente complicadas no era ninguna locura programarse mediante algn lenguaje de scripting (p.ej. perl) algunas pruebas de rendimiento "ex-profeso". Los frameworks son herederos de aquella idea y nos ofrecen APIs con mumediante el uso de lenguajes modernos (clojure, phyton, groovy, ...) permiten realizar pruebas de rendimiento totalmente customizadas a nuestras necesidades.

    herramientas especficas. Como hemos visto que hay situaciones en las que deberemos realizar pruebas de rendimiento en servicios no web, analizaremos algunas herramientas especficamente diseadas para servicios no web:

    , bases de datos ...

    JMeter es la referencia opensource a la de rendimiento, con lo cual es una

    a la que debemos acostumbrarnos. Lo mismo sirve para una prueba de carga a un servicio HTTP, que para una prueba de stress a un servidor LDAP. Permite un cmodo diseo de la prueba desde un entorno GUI, y adems la simulacin de

    reales mediante captura de sesiones de navegacin reales con un proxy incorporado, dispersin de eventos con temporizadores, inclusin de lgica en la prueba...

    Frameworks: scripting para gente elegante. Antes de la existencia de soluciones como JMeter, para la realizacin de pruebas relativamente complicadas no era ninguna locura programarse mediante algn lenguaje de scripting (p.ej. perl) algunas pruebas de

    profeso". Los frameworks son herederos de aquella idea y nos ofrecen APIs con multitud de funciones que mediante el uso de lenguajes modernos (clojure, phyton, groovy, ...) permiten realizar pruebas de rendimiento totalmente customizadas a nuestras necesidades.

  • Pruebas de Rendimiento TIC 63

    3.1 | RENDIMIENTO WEB: LAS HERRAMIENTAS CLSICAS Tienen en comn ser las herramientas bsicas y elementales para medir rendimiento de servicios y aplicativos web. Sus seas de identidad son: interfaz en lnea de comandos, funcionalidades espartanas y una curva de aprendizaje casi nula.

    Conexiones vs. Sesiones

    Antes de empezar a hablar de las herramientas propiamente dichas, vamos a tratar un aspecto importante que afecta a todas las herramientas de anlisis de rendimiento web: la orientacin a conexiones vs. la orientacin a sesiones.

    La orientacin a conexiones fue la primera y por tanto ms bsica forma de evaluar el rendimiento. La idea no puede ser ms sencilla: conecto, hago una peticin y desconecto. Tantas veces como sea necesario hasta que llegue al nmero de peticiones que se me ha indicado.

    La aproximacin tiene dos pequeos problemas. El primero de ellos es que al solicitar una web ligera, que se procesa en unos pocos milisegundos, el tiempo de reconexin en cada peticin va a penalizar de forma apreciable.

    05

    10

    15

    20

    25

    30

    35

    Milis

    egun

    dos

    Figura 3 - 1 | Comparativa de rendimiento | Contenido Esttico100 peticiones / 10 usuarios

    No KeepAliveKeepAlive

  • 64 Herramientas | 3

    La [figura 3-1] nos muestra un ejemplo de prueba de rendimiento, realizada en red local, donde 10 usuarios realizan un total de 100 peticiones (10 por usuario) a un servicio web esttico que sirve un documento de aproximadamente 1KByte. Podemos ver que la opcin sin Keep-Alive ofrece un rendimiento significativamente peor.

    No obstante, la [figura 3-2] nos muestra como en el momento que entra en juego un contenido dinmico, donde el tiempo de procesamiento tiene ms importancia que el tiempo de transmisin, la situacin deja de tener importancia.

    El segundo problema que presenta la orientacin a conexiones es que nuestros usuarios no se comportan as. Un cliente y un servidor web modernos mantienen abierta la sesin TCP entre 5 y 15 segundos hasta el timeout. Lo que hace que un usuario haga toda su sesin de navegacin por nuestro site con una unas pocas conexiones TCP. Con lo que la congestin a nivel de capa de transporte siempre va a ser menor.

    Para solventar estos inconvenientes, las herramientas implementan, de forma ms o menos acertada, modos de prueba por sesin, donde el conjunto de peticiones se integran en una misma conexin TCP haciendo uso del modo Keep-Alive.

    0

    50

    100

    150

    200

    250

    300

    350

    Milis

    egun

    dos

    Figura 3 - 2 | Comparativa de rendimiento | Contenido Dinmico100 peticiones / 10 usuarios

    No KeepAliveKeepAlive

  • Pruebas de Rendimiento TIC 65

    Apache Benchmark

    Apache Benchmark es la herramienta de medicin de rendimiento que acompaa, por defecto, a las instalaciones de Apache.