© 2012. Área de las tecnologías de la información y las comunicaciones aplicadas. mncs:...
TRANSCRIPT
© 2012. Área de las Tecnologías de la Información y las Comunicaciones Aplicadas.
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:migracion_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