Come monitorare le performance di un applicativo java

Qualche giorno fa ho scritto un articolo sul monitoraggio di una webapp java con Javamelody. Ora vediamo quali strumenti gratuiti possono essere utilizzati per monitorare un applicativo java generico.

Ho
letto un paio di articoli molto interessanti su IBM Developerworks, che
è una fonte davvero inesauribile di notizie ed esempi pratici per il
settore IT. Gli articoli si intitolano 5 things you didn’t know about … Java performance monitoring (parte 1 e parte 2).
Vengono descritti alcuni strumenti che possono risultare molto utili
per verificare l’impatto sulle performance del hardware di un server
causato da uno specifico applicativo java. Vediamo di seguito alcuni
degli strumenti che sono descritti in questi articoli.

JCONSOLE

Jconsole è un applicativo visuale il cui binario
è presente nella directory bin/ di una JVM. Consente di visualizzare
graficamente l’andamento di un processo java (locale o remoto)
relativamente a :

  • utilizzo di memoria
  • percentuale di CPU
  • numero thread
  • numero classi caricate

Fornisce inoltre informazioni su variabili d’ambiente e MBean.

JVISUALVM

JVISUALVM

Jvisualvm è un applicativo visuale il cui binario è
presente nella direcotry bin/ di una JVM ma può anche essere scaricato
in modalità standalone dal sito ufficiale.
Si nota subito la differenza grafica rispetto alla Jconsole, di cui
ricalca gran parte delle funzionalità, aggiungendo anche la possibilità
di profilare il processo. Consente inoltre di inglobare plugin di terze
parti dal repository ufficiale, che aggiungono funzionalità tra le più
disparate.

JPS

JPS

Jps è un applicativo eseguibile da riga di comando
che consente di visualizzare tutti i processi java attivi su una
macchina (locale o remota) comprensivo di lvmid (cioè un
identificativo del processo relativo alla JVM) e di variabili di avvio.
E’ un sistema veloce e cross-platform per risalire velocemente ai
processi che necessitano di verifiche.

JSTAT

JSTAT

Jstat è un applicativo
eseguibile da riga di comando  che fornisce informazioni
statistiche relativo a vari aspetti di un processo java:

  • comportamento del class loader
  • comportamento della compilazione
  • andamento del processo garbage collector

Lascia un commento