Visual VM – monitorizando Java

En el periodo final del desarrollo de un producto, es habitual hacer especial incapié en las pruebas de carga, estrés y estabilidad. Durante el desarrollo del mismo se han debido tener en cuenta, pero es en esta última etapa, y sobre todo de cara a salir a producción cuando toman mayor importancia.

Hablando de aplicaciones de escritorio y en concreto de aquellas que corren sobre una máquina virtual java (JVM), la herramienta Virtual VM nos puede ser de gran ayuda para detectar cuellos de botella, consumo de recursos, gestión de hebras, etc, etc

Características:

VisualVM nos ofrece, mediante un entorno gráfico, una gran cantidad de información sobre los procesos Java que se estén ejecutando sobre nuestro PC o sobre un sistema remoto (mediante jstatd).

Algunas de ellas son:

  • Monitor de rendimiento y consumo de memoria
  • Listado de la configuración y ejecución de la aplicación
  • Listado de hebras y su estado
  • Gestión de la pila de memoria

Instalación

Para tener disponible en nuestro entorno esta herramienta, basta con descargar el paquete desde su web, descomprimir el fichero en la ruta que más nos guste y ejecutar (en Windows) el ejecutable visualvm\bin\visualvm.exe. En este momento, nos pedirá aceptar la licencia de uso y comenzará a calibrar los valores por defecto. Es conveniente tener el PC con la menos carga posible para que los datos sean más reales.

Analizando una aplicación Java

Para analizar una aplicación, basta con ejecutar Visual VM y posteriormente lanzar nuestra aplicación. En la lista del árbol de la izquierda aparecerá el nuevo proceso, haciendo doble click sobre él se nos cargará en la parte del profiler.

Una vez seleccionado el proceso a analizar, podremos navegar por las distintas pestañas (Monitor, CPU, Memory) consultando los datos que más información nos provean en cada instante. Para mí, especial mención al apartado de hebras, muy útil para comprobar la ejecución periódica de estas así como su consumo de CPU/memoria.

Además de nuestra propia aplicación, podremos consultar el estado de la propia JVM. Para ello seleccionaremos el proceso de nuestra JVM y con el botón derecho elegiremos la opción “head dump”. Podremos ver un listado de los objetos disponibles, valores de la mayoría de variables, consumo de CPU por objeto, etc, etc

En definitiva, una aplicación muy útil para monitorizar nuestras aplicaciones ya sea bajo pruebas de carga, para comprobar su estabilidad tras largos periodos de uso, comprobación de liberación de recursos, aranque/parada de hebras, …

Y para los que necesiten más, echar un vistazo a la lista de plugin, bastante interesante.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s