#GX24#GX24
Adaptación y mejora continua de la performance de las aplicaciones
Simon De [email protected]
#GX24
¿Qué está pasando?
En el ambiente de testing
no hay problemas
Los servidores están sobrados
de recursos
La base tá’
tranquilaza
Grá f i c o ed
QUE J AS
#GX24
Mantenimiento
Mantenimiento y mejora de la performance de aplicaciones basada en:
• Registro / Bitácora de cambios• Conocimiento del funcionamiento interno de los
componentes utilizados• Monitorización
#GX24
Agenda
• Motivación – Problemas que se presentan en producción
• Conociendo el Sistema– Logs e indicadores disponibles en el ambiente
• Interpretando el Sistema– Herramientas
• Proceso– Proceso de mejora continua
#GX24
Problemas que se presentan en producción
Motivación
#GX24
Mantenimiento en producción
Cambios de personalCambios en el HardwareActualizaciones de Sistemas Operativos, Servidores de App, versión del framework, drivers, etc.Nuevas funcionalidades o cambios en existentesAumento volumen de la base de datosAumenta la carga del sistema (usuarios usando la app.)
Hay que estar preparados para conocer el impacto de los cambios, sobre todo los que están fuera de
nuestro control
#GX24
Mantenimiento en producción
Desde el punto de vista del usuarioEl sistema no responde El sistema responde, pero mensajes de errorEl sistema responde, pero muy “lento”
Desde el punto de vista de infraestructura“La CPU del servidor nunca sobrepasa el 40% de uso, hay gigas de memoria disponible, y tanto el disco como la red tienen recursos más que sobrados para operar correctamente.”
¿Entonces que pasa? ¿Porqué se cae? ¿Porqué está lento?
¿Qué está pasando?
Testing no encontró ningún
problema
Los servidores están sobrados
de recursos
La base tá’
tranquilaza
Gr á f i c oed
QUE J AS
#GX24
Mantenimiento en producción
Nos falta información para identificar el problema!
#GX24
Logs e indicadores disponibles en el ambiente
Conociendo el Sistema
#GX24
Herramientas de APM
Open Source Licenciadas
Helios OpNet – Riverbed
Moskito AppDynamics
Nagios New Relic
… …
#GX24
Diagrama de Infraestructura
Diagrama de infraestructura + Plan de Monitorización inicial
Balanceador
- Recursos de Sistema Operativo
- Access logs con tiempo de Resp.
- Logs del balanceador
- Recursos de SO- AccessLogs +
TdR- Uso de memoria
del proceso- Información de
aplicación: Exceptions Logs, GX Managment Enable
- Pools- …
- Recursos de SO- Locks / seg- SQLs más lentas
Cluster
App. Server 1 App. Server 2
Apps Apps
#GX24
Logs
#GX24
Logs
#GX24
Interpretando el Sistema
Herramientas para extraer la información dentro de los datos
#GX24
Recursos de SO
BalanceadorCluster
App. Server 1 App. Server 2
Apps Apps
UsuariosUsuarios
NMon – NMon Analyzer Perfmon – Genera logs y
gráficas
#GX24
Access Log Analyzer
BalanceadorCluster
App. Server 1 App. Server 2
Apps Apps
UsuariosUsuarios
#GX24
Access Log AnalyzerObservaciones:
- Balanceador NO distribuye equitativamente la carga entre los 2 servidores
- El pico es de casi 6000 pedidos / minuto en los 2 servidores
- Se identifican los momentos de menor carga para aplicar cambios en el ambiente
- La carga en el sistema es similar durante el período monitorizado
#GX24
Access Log AnalyzerObservaciones:
- Hay excepciones en los servidores (errores de programas) que llegan al usuario como errores HTTP 500.
- Se llegó a un pico de 140 excepciones en 1 minuto.
#GX24
Access Log Analyzer
Otros reportes posibles:• Top 5, 10, URLs más lentas de cada intervalo• Cantidad de HTTP reqs. Recibidos, agrupados por
código de respuesta• Cantidad de respuestas de cada intervalo,
agrupadas por tiempo de respuesta• Todos los tiempos de resp. de una determinada URL• URLs que más aparecen en el Top de todos los
intervalos• …
#GX24
Framework memory usage
BalanceadorCluster
App. Server 1 App. Server 2
Apps Apps
UsuariosUsuarios
GCViewer IBM Support Assistant + Plugins JVisualvm
#GX24
Framework memory usageObservaciones:
- Ambos servidores tienen suficiente memoria para operar.
- No se observa degradación en el uso de la memoria.
- Tiempo máximo de GC FULL fue menor a 1 segundo.
#GX24
+ Herramientas
Existen muchas herramientas para cada tipo de log.
En abstracta estamos desarrollando algunas que están liberadas a la comunidad. El código está disponible en GitHub.
https://github.com/abstracta/
#GX24
Interpretando el Sistema
A corregir
- Corregir la programación para que no lleguen errores HTTP 500 a los usuarios.
- Configurar correctamente el balanceador de carga.
#GX24
Proceso
Proceso de Mejora continua
#GX24
Proceso
Objetivos
Reconocimiento de la
infraestructura
Plan de monitorización
Aplicar la monitorizaci
ón
Análisis de los resultados
Cambios / Correcciones
Bitácora de cambios
Capacitación del
personal
#GX24
Proceso - Objetivos
¿Qué puedo hacer para mejorar los tiempos de respuesta?
¿Qué recurso está saturado?
¿Cuál es el cuello de botella que me va a impedir escalar en el
futuro?
¿Cuántos recursos requiere una aplicación dada determinada
carga en el sistema para responder correctamente?
¿Qué puedo hacer para que consuma menos recursos?
¿Qué puedo hacer para que demore menos?
#GX24
DevOp – Nuevo Rol de IT
Development + Operations + Servicios- Énfasis en la comunicación, colaboración e integración
entre desarrolladores y personal de ambientes o tecnología.
- Objetivos- Analizar resultados de monitorización en conjunto con
tecnología y desarrollo para mejorar la salud de los sistemas
- Desarrollo incorpora conocimiento de infra. a sus decisiones
- Tecnología adquiere conocimiento de las aplicaciones y sus requerimientos para sus decisiones
#GX24
Resumen
Mantenimiento y mejora de la performance de aplicaciones basada en:
• Conocimiento del funcionamiento interno de los componentes utilizados
• Registro / Bitácora de cambios
• Monitorización
#GX24
Temas relacionados
Hacer pruebas de performance para responder algunas preguntas planteadas en los objetivos de monitorización antes de pasar las aplicaciones a producción.
Trabajo en equipo. Son muchos sistemas, son complejos y usan muchas tecnologías / frameworks. Es importante apoyarse en el equipo. Desarrolladores + administradores trabajando juntos.
#GX24
¿Preguntas?