Está en la página 1de 39

MNCS: Investigación, desarrollo y gestión de la

calidad

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Índice

• MNCS: Metodologías, Normalización y Calidad del Software.


– Investigación y diseño.
– Gestión de los desarrollos  MEDEA
• Test de carga
– Componentes Hardware
– Componentes Software
• Elementos de testeo
– Tipos de test de carga
– Puntos críticos
– Interpretando resultados
• Diseñando un test de carga
• Herramientas Software
– JMeter
– LoadUI
• Ejercicios
© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
MNCS: Investigación y diseño.

• Estudio e investigación de componentes software:


– Tecnologías de desarrollo.
– Herramientas monitorización y control de software .
– Herramientas de testeo de aplicaciones y depuración.
• Punto de unión entre los desarrollos realizados y los servidores
físicos que los soportan.
• Diseño de estructuras software adaptadas a los requerimientos
del hardware especificado por la sección de sistemas.
– Estructura de librerías.
– Diseño de actualizadores.
– Librerías específicas
– etc…

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


MNCS: Gestión de desarrolos.

• Gestión del proceso de desarrollo de aplicaciones


software.
– Recogida de requisitos
– Gestión de cambios
– Control de calidad del software
– Control de entornos de pruebas y test
– Integración continua de aplicaciones.
• MEDEA: Metodología diseñada para el control de todo el
ciclo de desarrollo desde la toma de requisitos hasta la
puesta en marcha en los servidores.

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


MNCS: MEDEA

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Índice

• MNCS: Metodologías, Normalización y Calidad del Software.


– Investigación y diseño.
– Gestión de los desarrollos  MEDEA
• Test de carga
– Componentes Hardware
– Componentes Software
• Elementos de testeo
– Tipos de test de carga
– Puntos críticos
– Interpretando resultados
• Diseñando un test de carga
• Herramientas Software
– JMeter
– LoadUI
• Ejercicios
© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Test de carga

• Ideados para testear el rendimiento de las aplicaciones en


diferentes situaciones.
• Obtiene medidas de:
– Rendimiento general del sistema.
– Respuesta ante picos de carga.
– Respuesta ante una alta carga sostenida.
• Componentes a testear:
– Elementos Hardware: Servidores, balanceadores, cachés…
– Elementos Software: Balanceadores, sistemas de caché,
bases de datos, servidores…
© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Test de carga

• Su importancia es crítica a la hora de asegurar que los


recursos disponibles son los adecuados.
• El análisis de resultados nos permite:
– Conocer exactamente los recursos que debemos asignar.
– Detectar puntos críticos y cuellos de botella.
– Comprobar robustez del sistema a nivel hardware/software.
• A la hora de gestionar un sistema las aplicaciones deben
tener los recursos que necesitan, ni más, ni menos.
• Los test de carga permiten simular con detalle las cargas
estimadas para asignar los recursos adecuadamente.
© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Componentes Hardware

• Los componentes Hardware involucrados en un sistema


distribuido son:
– Servidores: Principalmente de aplicaciones y web, aunque
existen otros tipos según el ámbito en el que trabajemos.
– Balanceadores: Están por encima de los servidores,
principalmente son Software pero también los encontramos
Hardware.
– Base de datos: En un solo nodo o distribuida, se encuentra
por debajo de los servidores.
– Otros: Servidores Industriales (robótica), macro
procesadores, etc…

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Componentes Hardware

• Definición del sistema:


• Cluster DB de 2 nodos.
• Cluster WS de 3 nodos.
• Balanceador Hardware de un nodo.

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Componentes Software

• Los componentes Software que normalmente


encontraremos son:
– Servidores: Weblogic, GlassFish, Tomcat, Apache ...
– Balanceadores: Zen LoadBalancer, Kemp, BalanceNG ...
– Base de datos: Oracle, MySql, Postgres ….
• Estos componentes están limitados por las características
del Hardware que los engloba.
• Es crítico gestionar la mejor configuración
Hardware/Software para lo que necesitamos.

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Índice

• MNCS: Metodologías, Normalización y Calidad del Software.


– Investigación y diseño.
– Gestión de los desarrollos  MEDEA
• Test de carga
– Componentes Hardware
– Componentes Software
• Elementos de testeo
– Tipos de test de carga
– Puntos críticos
– Interpretando resultados
• Diseñando un test de carga
• Herramientas Software
– JMeter
– LoadUI
• Ejercicios
© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Tipos de test de carga

• Existen tres tipos principales de test de carga:


– Test de carga (realista): Valora la reacción del sistema ante una
carga promedio de accesos. Permite verificar que el sistema
funciona correctamente durante largos periodos de tiempo.
– Test de rendimiento: Empezando con una carga promedio y
aumentando poco a poco hasta llegar al límite del sistema. Nos
indica cómo responde el sistema ante el aumento de carga y
dónde está su máximo.
– Test de estrés (con picos): Lanza diversos test con diferentes
cargas de manera intercalada para ver cómo se comporta el
sistema con picos de carga y sobre su punto máximo.

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Puntos críticos

• A la hora de montar un sistema debemos identificar


claramente los puntos críticos y testearlos a conciencia
para evitar errores en la ejecución de las aplicaciones.
• Factores a tener en cuenta:
– Concurrencia de aplicaciones.
– Sincronización de los nodos.
– Gestión de sesiones/estado de la comunicación cliente-
servidor.
– Timeouts.

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Puntos críticos

• Cada tipo de servidor tiene unas restricciones propias, por


ejemplo:
– Servidor Base de Datos:
• Sincronización de datos.
• Gestión de bloqueos.
• Gestión de la recuperación de un nodo. (Actualización de los
datos, activar el nodo).
– Servidor Web/Aplicaciones:
• Manejo de sesiones. (Mantenimiento y distribución de la
sesión).
• Gestión de diferentes aplicaciones de manera concurrente.

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Puntos críticos

• El balanceador, en caso de tenerlo, es el único punto de


acceso al sistema, por lo que su correcto funcionamiento
es prioritario.
• Puede existir un único balanceador, o encontrarse varios
en paralelo.
• Es importante, tener un sistema de balanceo de respaldo
por si el sistema principal se cae evitar que el sistema
quede inaccesible.
• Un correcto algoritmo de balanceo asegura una
optimización de los recursos.

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Interpretando resultados

• Interpretar de manera adecuada los resultados es muy


importante para establecer una configuración óptima del
sistema.
• En ocasiones resulta necesario repetir los test de manera
individualizada sobre determinados componentes
hardware para aumentar el nivel de detalle.
• Existe un gran espectro de datos a tener en cuenta, pero
los básicos son:
– Errores detectados.
– Tiempo de respuesta (Latencia).
– Tiempo de recuperación.
© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Interpretando resultados

• Errores detectados
– Nos indica todas las peticiones que no pudieron ser atendidas
porque el sistema está sobrecargado.
– Debemos identificar quien es el causante de la caída y el motivo.
• No se responde a las peticiones (TimeOut) -> El balanceador o los
servidores no responden.
• Se responde con un mensaje de error -> Los servidores notifican por
mal funcionamiento del sistema o de la base de datos.
– Con una carga alta, puede considerarse “normal” que algunas
peticiones fallen.
– Ataque Denegación de Servicio (DoS): Miles o millones de
equipos hacen solicitudes a un servidor, sobrecargándolo e
impidiendo que responda, o lo haga con mucho retardo.

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Interpretando resultados

• Tiempo de respuesta (Latencia).


– El tiempo de respuesta nos indica cómo de sobrecargados
están los servidores.
– Es una medida que nos permite determinar si debemos
ampliar el sistema o reconfigurarlo.
– Es un factor a reducir lo máximo posible, cuanto menor sea
este valor mejor será la configuración del sistema.
– En momentos pico, la latencia subirá, el objetivo es
contenerla dentro de un rango adecuado y baja en las zonas
valle.

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Interpretando resultados

• Tiempo de recuperación.
– Es el tiempo que tarda el sistema en recuperarse de la caída
de alguno de sus componentes.
– Es muy importante que el sistema esté disponible el mayor
tiempo posible.
– Es conveniente tener servidores de respaldo, inactivos pero
actualizados, que retomen el control cuando los principales
caigan.
– Debemos tener bien cubiertos los cuellos de botella.

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Índice

• MNCS: Metodologías, Normalización y Calidad del Software.


– Investigación y diseño.
– Gestión de los desarrollos  MEDEA
• Test de carga
– Componentes Hardware
– Componentes Software
• Elementos de testeo
– Tipos de test de carga
– Puntos críticos
– Interpretando resultados
• Diseñando un test de carga
– Herramientas Software
• JMeter
• LoadUI
• Ejercicios

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Diseñando un test de carga

• A la hora de diseñar el test, debemos llegar a los límites del


sistema, sin perder de vista el objetivo real, que es que con una
carga normal funcione todo.
• Los casos extremos son puntuales, por lo que prima que el
sistema esté siempre activo antes que obtener un bajo tiempo
de respuesta.
• https://wiki.um.es/wikis/programador/doku.php?id=migralinux:mi
gracion_bd_a_rac
• Por lo tanto, proponemos la siguiente estructura de test:
– Localización de límites y ajuste del sistema.
– Test de carga en “límite -1”.
– Test de carga en con tráfico normal.
– Simulación de caídas de equipos para los test anteriores.

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Diseñando un test de carga

• La simulación de caídas de equipos nos dará una medida


más exacta de cómo puede responder el sistema ante
cualquier problema.
• Con una carga normal, si se mantiene la disponibilidad con
tiempos razonables, la estructura global del sistema se
puede dar como válida.
• Manteniendo la disponibilidad, a mejor tiempo de
respuesta, mejor estructura global del sistema.

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Herramientas Software

• Es imposible simular el acceso concurrente de miles de


equipos de manera simultánea.
• Es necesario disponer de una herramienta que permita
emular dichas conexiones.
– JMeter: Herramienta Java que permite emular múltiples
conexiones y procesos de navegación complejos.
• http://jmeter.apache.org/
– LoadUI: Herramienta Java FX, que permite, en su versión
gratuita, emular test de carga simples.
• http://www.loadui.org/

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Herramientas Software: JMeter

• JMeter es una herramienta de software libre proporcionada


por Apache para la generación de test de carga.
• Esta desarrollado en Java al 100% lo que permite una fácil
modificación y extensión.
• Presenta una interfaz clara con multitud de elementos para
medir el rendimiento del sistema.
• Permite simular la navegación de un usuario a través de un
flujo de datos.
• Incorpora un servidor proxy para capturar las peticiones
que queremos incluir posteriormente en el test.

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Herramientas Software: JMeter

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Herramientas Software: JMeter

Controlador simple: Gestiona el test

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Herramientas Software: JMeter

Sevidor proxy: Prepara el test

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Herramientas Software: JMeter

Muestreadores: Obtiene los datos del test

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Herramientas Software: LoadUI

• Preparación del test de carga:


– Creamos un grupo de hilos.
– Creamos un controlador.
– Creamos un servidor proxy en JMeter.
– Modificamos el navegador para que acceda a internet a
través de nuestro servidor proxy.
– Ejecutamos las consultas.
– Paramos el servidor.
– Repasamos nuestro plan de pruebas eliminando consultas
redundantes.
– Lanzamos nuestro test.

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Herramientas Software: LoadUI

Generadores de flujo de llamadas

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Herramientas Software: LoadUI

Módulos de ejecución

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Herramientas Software: LoadUI

Procesadores de estadísticas

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Herramientas Software: LoadUI

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Índice

• MNCS: Metodologías, Normalización y Calidad del Software.


– Investigación y diseño.
– Gestión de los desarrollos  MEDEA
• Test de carga
– Componentes Hardware
– Componentes Software
• Elementos de testeo
– Tipos de test de carga
– Puntos críticos
– Interpretando resultados
• Diseñando un test de carga
– Herramientas Software
• JMeter
• LoadUI
• Ejercicios

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Ejercicios

• Ejercicio JMeter:
– Crear un test de carga para las url:
• www.um.es
• www.todofp.es
• www.carm.es
– Probar los diferentes tipos de receptores:
• Árbol de resultados.
• Response Time Graph.
• Resultados en árbol.
• Reporte resumen.
– Comprobar las tasas de error y diferencia de respuesta en
ambos test.
© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
Ejercicios

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Ejercicios

• Ejercicio LoadUI:
– Repetir el ejercicio anterior con LoadUI
– Observar los resultados obtenidos

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.


Ejercicios

© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.

También podría gustarte