Clínica de Performance Ing. Gustavo Guimerans Centro de Ensayos de Software (www.CES.com.uy) ¿Quiénes somos? § Especializados en servicios de testing • Evaluar la calidad de los sistemas § Emprendimiento conjunto • Vínculo Academia-Industria § Símbolo de calidad • Desde 2004 2 Principales servicios • Testing funcional • Ensayos de plataformas • Capacitación en testing ü Carrera – 12 ediciones ü Grado y Posgrado ü Especializaciones • Consultoría en testing ü Departamento de testing ü Proceso de testing ü Apoyo en proyectos de testing • Certificación / Homologación / Conformidad 3 ¿Contexto? ¿Arquitectura? ¿Contexto? ¿Arquitectura? ¿Foco? 6 ¿Foco? 7 ¿Foco? Elaborar cuestionario Definición de la prueba Grabar y reproducir un script HTTP Especificación y armado del ambiente de prueba Definición de escenarios Automatización de la prueba Configuración de monitorización 8 ¿Automatización? 9 ¿Monitorización? 10 ¿En desarrollo? Algunas, además, facilitan el proceso de automatización, pues permiten revisar las solicitudes y las respuestas. Este es el caso de los sniffers como wireshark, fiddler también son útiles los profilers y servicios de análisis de páginas como YSlow. 11 ¿En Desarrollo? Top 5 Java Profilers Revealed: Real world data with VisualVM, JProfiler, Java Mission Control, YourKit and Custom tooling http://zeroturnaround.com/rebellabs/top-5-java-profilers-revealed-real-world-data-with-visualvm-jprofiler-java-mission-control-yourkit-and-custom-tooling/ 12 Fusión Bancos 13 Fusión Bancos 14 Fusión Bancos 15 Fusión Bancos 16 Fusión Bancos 17 Fusión Bancos § El final… y lo primero... 18 Fusión Bancos § Baseline “TRN03” 19 Fusión Bancos 20 Fusión Bancos § Resumen baselines 21 Fusión Bancos § “10%” 22 Fusión Bancos § “10%” 23 Fusión Bancos § “10%” 24 Fusión Bancos § “10%” ¿Causas? • Loop • Red 25 Fusión Bancos § “10%” ¿Causas? 26 Fusión Bancos § “10%” ¿Causas? 27 Fusión Bancos § ¿Solución? 28 Fusión Bancos § “50%” 10 Gb/s la red 29 Fusión Bancos § “100%” - Prueba de larga duración ¿? 30 Fusión Bancos § “100%” - +Trx06 ¿? 550 usuarios aproximadamente 31 Fusión Bancos § “200%” 32 Fusión Bancos § “200%” ¿Causas? Dada la carga observada y para evitar espera de los usuarios por conexiones libres, se aumentaron la cantidad de conexiones (de 25 a 30) en el pool. 22:23 22:25 22:28 22:30 22:33 22:35 22:38 22:40 22:43 22:45 22:48 22:50 22:53 22:55 22:58 23:00 23:03 23:05 23:08 23:10 23:13 23:15 23:18 23:20 23:23 23:25 23:28 23:30 23:33 23:35 23:38 23:40 23:43 23:45 23:48 El heap de memoria se mantuvo sin problemas en el entorno de 1GB a 2GB, en la medida que se disparaban los Garbage Collections. La siguiente gráfica muestra un comportamiento es adecuado. 33 Fusión Bancos § ¿Solución? • Direccionamiento del 150% ü Hacia el cluster. ü Hacia uno de los WAS. ü Hacia uno de los IBM HTTP Server. 34 Fusión Bancos § ¿Solución? § ¿Repartimos? 35 Fusión Bancos § ¿Repartimos? • • • • ¿Si uno de los WAS no soportaba la carga? ¿Si ninguno de los WAS soporta? ¿Si la carga es soportada por ambos WAS? ¿Si los tiempos figuran oscilantes? 36 Fusión Bancos § ¿Repartimos? • Los tiempos se degradaron de forma irregular, oscilando aunque no tanto como en las pruebas sobre la balanceadora. • En el WAS *.25 luego de un tiempo empiezan a ocurrir errores (minuto 35 en adelante). • Durante la prueba ambos WAS hicieron "reload", lo que produjo una caída abrupta de la cantidad de usuarios activos. 37 Fusión Bancos § ¿Reiniciamos? • ¿Qué? “Power 740” ¿donde se alojaban? • Verificar si la carga se “empareja” ü Resultados aceptables en ambas generaciones ü Configuración de la balanceadora • 150% de la carga sobre la balanceadora. ü Se verificó, comportamiento “estilo sierra” ü bastante claras para los valles y los picos • El balanceo no funcionó bien. 38 Fusión Bancos 39 Fusión Bancos envolvente inferior de oscilación de los tiempos de la TRN06 y TRN07 40 100 80 60 40 20 0 20:07 20:09 20:11 20:13 20:15 20:17 20:19 20:21 20:23 20:25 20:27 20:29 20:31 20:33 20:35 20:37 20:39 20:41 20:43 20:45 20:47 20:49 20:51 20:53 20:55 20:57 20:59 21:01 21:03 21:05 21:07 21:09 1500 1000 500 0 20:07 20:09 20:11 20:13 20:15 20:17 20:19 20:21 20:23 20:25 20:27 20:29 20:32 20:34 20:36 20:38 20:40 20:42 20:44 20:46 20:48 20:50 20:52 20:54 20:57 20:59 21:01 21:03 21:05 21:07 21:09 Fusión Bancos Pagingsrv_aplic2_mont(pgspace) 09/10/2012 pgsin User% pgsout CPUTotalsrv_aplic2_mont09/10/2012 Sys% Wait% 41 Thousands 0 20:07 20:09 20:11 20:13 20:15 20:17 20:20 20:22 20:24 20:26 20:28 20:30 20:33 20:35 20:37 20:39 20:41 20:43 20:46 20:48 20:50 20:52 20:54 20:56 20:59 21:01 21:03 21:05 21:07 21:09 Thousands KB/sec 80 60 40 20 0 20:07 20:09 20:12 20:14 20:17 20:19 20:22 20:25 20:27 20:30 20:32 20:35 20:38 20:40 20:43 20:45 20:48 20:50 20:53 20:56 20:58 21:01 21:03 21:06 21:09 DiskReadKB/s en0-read DiskWriteKB/s 1000 500 lo0-read en0-write IO/sec Fusión Bancos DisktotalKB/ssrv_aplic2_mont- 09/10/2012 IO/sec 1500 0 NetworkI/Osrv_aplic2_mont(KB/s) 09/10/2012 lo0-write 30 20 10 42 Thousands 10 8 6 4 2 0 20:07 20:09 20:11 20:13 20:15 20:17 20:20 20:22 20:24 20:26 20:28 20:30 20:33 20:35 20:37 20:39 20:41 20:43 20:46 20:48 20:50 20:52 20:54 20:56 20:59 21:01 21:03 21:05 21:07 21:09 Thousand s 0 20:07 20:09 20:11 20:13 20:16 20:18 20:20 20:22 20:25 20:27 20:29 20:31 20:34 20:36 20:38 20:40 20:43 20:45 20:47 20:49 20:52 20:54 20:56 20:58 21:01 21:03 21:05 21:07 Fusión Bancos NetworkI/Osrv_balanc2_mont(KB/s) 09/10/2012 en0-read en0-read lo0-read lo0-read en0-write en0-write lo0-write 20 NetworkI/Osrvdbmont(KB/s)09/10/2012 lo0-write 43 Fusión Bancos § Proyecto exitoso • Se reprodujeron escenarios • Solucionar varios problemas ü previo a la puesta en producción § Escaló la carga. § 10 transacciones automatizadas § Cambios conllevaron a mejoras • Alcanzó, estabilizó y superó el 100% 44 Fusión Bancos § 150% paginación genera degradación § Infraestructura configurada y “tuneada” § Consideraciones • base de datos poblada con estimado • Ensayo capacidades de red ü Un enlace de 4Mb fue saturado en el 10% ü Aproximadamente 180 usuarios accediendo 45 ¿Mejoras y conclusiones? § Modelo estimación de carga esperada: • http://blog.ces.com.uy/?p=436 § Depende de la criticidad del mismo. § Información sobre la calidad del sistema § Nivelar las expectativas. § Análisis de exportas - mejoras. § Distintos tipos de pruebas rendimiento. 46 ¿Mejoras y conclusiones? § Dependerá de la arquitectura y objetivos § Ingeniería de performance • mejorar el rendimiento de los sistemas. § Equipo multidisciplinario • (ej. base de datos, s. de aplicación). § P. de rendimiento + I. de performance • mejora el rendimiento • analizar las causas • reproducir los problemas controlado 47 ¡Gracias! Centro de Ensayos de Software • • • • • • • • Sitio: http://www.ces.com.uy Carrera de Testing: http://www.ces.com.uy/index.php/carrera-de-testing Twitter: @ces_com_uy Facebook: /CentroDeEnsayosDeSoftware Plataforma de capacitación: http://www.capacitacion.ces.com.uy Blog: http://blog.ces.com.uy Contacto: [email protected] Youtube: Centro de Ensayos de Software Más dudas y comentarios, me buscan o… [email protected] 48