Jvisualvm: uno strumento di monitoraggio degli applicativi java

Fra i vari strumenti di monitoraggio di un applicativo Java ho recentemente provato Jvisualvm, un tool visuale utile sia per gli sviluppatori che per i sistemisti. Vediamone le caratteristiche.

Per utilizzare Jvisualvm avete due possibilità: scaricare ed installare una jdk
( trovate l’eseguibile jvisualvm nella directory bin/
dell’installazione) oppure scaricare l’applicativo in modalità
standalone dal sito ufficiale. L’interfaccia di Jvisualvm risulta essere sicuramente più interessante di quella di Jconsole,
ma di certo non è questo il motivo per cui sceglierlo. Questo strumento
offre la possibilità di controllare sia aspetti inerenti il
comportamento di un applicativo (con la possibilità di verificare ad
esempio l’andamento del Heap Space o di scaricare i dump della memoria
di un particolare thread per poi analizzarlo) che lo stato del processo
(consumo istantaneo di memoria e di cpu, parametri di avvio del
processo, …).

Jvisualvm – elenco applicazioni

La schermata iniziale propone sulla sinistra una colonna con
l’elenco dei processi attivi sulla macchina locale. Da questa lista
potrete visualizzare anche processi remoti a cui collegarvi. Entrando
nel dettaglio di un processo vi apparirà una schermata con quattro tab:

  • overview
  • monitor
  • threads
  • profiler

Jvisualvm – overview

In overview potete
visualizzare alcuni dettagli sistemistici relativi all’applicativo (nel
mio caso si tratta del IDE Aptana Studio, basato su Eclipse):

  • pid del processo
  • host di riferimento
  • gli argomenti associati all’eseguibile
  • la JVM utilizzata
  • gli argomenti della JVM

Jvisualvm – monitor

In monitor sono
presentati tramite grafici gli andamenti dell’utilizzo di CPU, del
consumo di memoria (heap e permgen), del numero totale di classi
caricate e di thread attivi.

Jvisualvm – thread timeline

Jvisualvm – dettaglio di un thread

In threads è
possibile verificare il timeline dei thread, con lo stato (running,
sleeping, wait) di ogni singolo processo figlio nel tempo, oppure il
dettaglio di un singolo processo figlio, con la possibilità di scaricare
il dump della memoria in locale per poi analizzarlo separatamente.

Jvisualvm – profiler

Infine, c’è il profiler,
con il quale è possibile analizzare in un intervallo di tempo
l’esecuzione dell’applicativo con l’indicazione dei metodi invocati e
del consumo specifico di CPU o di memoria.

Una interessante caratteristica di Jvisualvm è la possibilità di ampliarne le funzionalità tramite plugin, che trovate sul sito ufficiale del prodotto.

Lascia un commento