Muitos nem sabem que existe, mas o JDK traz uma ótima ferramenta de monitoramento de aplicações Java: é o JConsole. O JConsole está no diretório $JAVA_HOME/bin, onde $JAVA_HOME é o diretório onde o JDK foi instalado. O JConsole pode ser utilizado tanto para monitoramento de aplicações locais quanto aplicações remotas. Neste post, irei explicar como monitoramos aplicações locais.
Para permitir que o JConsole monitore uma aplicação, é necessário que se passe o seguinte parâmetro para a JVM quando iniciamos a aplicação:
-Dcom.sun.management.jmxremote
Exemplo:
* execução de um jar de forma “normal”:
java -jar Aplicacao.jar
* execução de um jar com o parâmetro para monitoramento:
java -Dcom.sun.management.jmxremote -jar Aplicacao.jar
Após executar a aplicação desta forma, basta abrir o Jconsole. A aplicação irá estar na lista do JConsole. como mostra a imagem abaixo:
JConsole - Nova Conexão
Basta escolher a aplicação e clicar em connect.
A interface do JConsole é composta por seis abas:
Overview: informações gerais sobre a aplicação;
Memory: Informações sobre o uso de memória;
Threads: Informações sobre o uso de threads;
Classes: Informações sobre o carregamento de classes da aplicação;
VM Summary: Informações gerais sobre a VM e da aplicação monitorada;
MBeans: Informações sobre os MBeans registrados.
Desta forma, é possível monitorar toda a aplicação: quantas classes ela carrega, quantas threads ela dispara, quanto de memória ela utiliza, etc.
Ao meu ver, o mais interessante do JConsole é monitorar o uso de memória das aplicações, e assim alocar corretamente a quantidade de memória correta para ela
Em um outro post irei explicar como se faz este gerenciamento de memória… e também como monitorar aplicações remotas com o JConsole.
Abraço!



Obrigado pelo seu post. Criei um post informando como passar o parâmetro para iniciar a aplicação java no Eclipse.
http://boasnovasetc.blogspot.com/2010/11/monitorando-aplicacoes-java-com.html