Monitorando JVM com Java VisualVM.

No dia a dia é muito comum situações em que precisamos realizar troubleshooting na aplicação ou infraestrutura afim de identificar possíveis problemas no ambiente.

VisualVM é uma ferramenta para monitorar e solucionar problemas de aplicativos Java. O VisualVM roda em cima do JDK 6, porém é capaz de monitorar aplicativos rodando em JDK 1.4 e superiores.
O VisualVM utiliza várias tecnologias disponíveis, como: jvmstat, JMX, SA e suporte a API para obter os dados.

Para utilizar o Java VisualVM é necessário instalar o JDK 1.6 superior e ter um X Server (local ou remoto).

O servidor que roda minha aplicação não possui X Server iniciado/instalado, sendo assim é necessário ter um X Server instalado em minha estação. Para usuários de Windows recomendo a instalação do Xming. Leia esse tutorial para configurar o Xming corretamente.

Já com o X Server iniciado, acesse o servidor de aplicação e execute o comando abaixo.

cd $JAVA_HOME/bin/
./jvisualvm <pid_da_instancia>

Ex:

./jvisualvm 1234

Obs: usuários de Windows podem utilizar o comando jps.exe para identificar o PID do processo.

Tela VisualVM:

  • Aba Overview – Exibe informações da JVM.
  • Aba Monitor – Monitor em tempo real: CPU, HEAP, PermGem, Classes e Threads, Thread Dump e Perform GC.
  • Aba Threads – Informações detalhadas sobre as Threads em voo.
  • Aba Profiler – Profiles CPU / Memória.
  • Aba JConsole Plugins – Plugins.
  • Aba VisualGC – Informações sobre a JVM (Spaces Perm, Old, Eden)

Exemplo da Aba Monitor:

visualvm
VisualVM

Além do VisualVM existe o jconsole, porém o VisualVM é mais completo.

Show Comments