Descripción de problemas comunes de monitoreo, administración y profilig de aplicaciones java. Introducción a Java Mission Control y la funcionalidad de Java Flight Recorder para poder identificar y prevenir dichos problemas.
Its easy! contributing to open source - Devnexus 2020
Java mission control para monitoreo, administración y profilig de aplicaciones java OTN 2014
1. Java Mission Control para
monitoreo, administración y
profilig de aplicaciones Java
OTN Tour Guatemala 2014
César Hernández
CesarHernandezGt
@CesarHgt
CesarHernandezGt
2. César Hernández M.
● Arquitecto de software
● Ingeniero en Ciencias y Sistemas, Master en Gerencia de
Sistemas de información y posgrado en Ingeniería
Administrativa
● Oracle Certified Professional
● Consultor informático
● TATA TCS Solution Architect and Trainer Certified
● Revisor técnico para Manning Publications Co.
● Miembro activo de la Comunidad de Usuarios de Java y
Oracle de Guatemala
● Blogger de TIC’s independiente
● Experiencia diseño e implementación de sistemas Java
Enterprise, eLearning, personal Training y conferencias
técnicas.
3. Agenda
● Aplicaciones Java (WEB)
● Componentes principales de la JVM
● Perspectivas
● Comunicación con la JVM
● Herramientas
○ Línea de comandos
○ Jconsole
○ Visual VM
● Java Mission control
● Java Flight Recorder
6. Perspectivas
● Memoria
○ Garbage Collector
○ Pools
● Cpu
○ OS vs JVM
● Threads
○ Dead Locked
● Clases
○ Ocupación
● MBeans
Footprint de
Memoria
Latencia
throughput
(rendimiento)
tps)
7. Comunicación con la JVM
● Attach Envío de comandos a la JVM para obtener data de ella
● JDP (Java Discovery Protocol) Disponible a partir de 7
update 40 para hacer broadcast de (Main class name,
Unique Id, JMX service URL)
● JMX Acceso local y Remotos (SSL y autenticación)
● JSTATD Daemon que corre en un equipo remoto (no provee
autenticación)
Nota conJMX:
Tener se debe de tener permisos para escribir en el folder:
temp/hsperfdata_userName Con esto podemos descubrir JVM locales.
Trabajo a futuro incluye Rest Protocol, Annotations y batch updates.
9. Línea de comandos
● jps Identifica los procesos Java en el
equipo
● jcmd Similar a jps, puede enviar
comando de diagnostico a la JVM
● jstat estadísticas de rendimiento de
instrumentación HostPot JVM
A futuro jcmd sustituirá a jstack, jmap y jinfo
10. Jconsole
● La más antigua de las tres
● JVM locales y remotas por JMX
● Análisis de
○ Memoria
○ Threads
○ Clases
○ Información general de la JVM
● Menor actividad de desarrollo “necesitamosdar feedback” OTN.
● Ultimo update significativo realizado en Java 6
12. Visual VM
● JVM locales y remotas por JMX
● Análisis de
○ Memoria
○ Threads
○ Clases
○ Información general de la JVM
● Variedad de pluggins para análisis en vivo
● Netbeans
15. JMC
● “Rotating buffer of diagnostics and profiling
data that is always available, on demand”
● JVM locales y remotas por JMX en vivo no intrusivo
● Análisis y monitoreo de
○ Memoria, Threads,Clases, Información de JVM
● Disponible a partir de JDK 7 u40
● Mejor interfáz gráfica con alta personalización
● Disparadores de alertas (Triggers)
● Plugins
● Flight Recorder
16. JMC - Flight Recorder
● Provee un análisis retroactivo
● Profiler y rastreo no intrusivo
● Captura de información tanto de la JVM como de
la aplicación
● Análisis gráfico sobre JMC
● Análisis de HeapDumps
● Puede correr como Pluggin
en Eclipse
17. JFR consideraciones
● Flight Recorder solo tiene
soporte para JDK > 7u4
● Restricciones de licencia
para su uso en producción
● Soporte comercial
○ Oracle Java SE Advanced
○ Oracle Java SE Suite
○ WebLogic Server Enterprise Edition
○ WebLogic Suite
● JMC no es OpenSource… aún.
http://docs.oracle.com/javase/7/docs/technotes/guides/jmc/index.html