Java, VisualVM: Configurando o VisualVM corretamente para aplicativos da web baseados em Java8

Java, VisualVM: Configurando o VisualVM corretamente para aplicativos da web baseados em Java8

Eu tenho um webapp baseado em Java que implantei em um de nossos servidores. Às vezes, a JVM morria devido a um erro de falta de memória. O aplicativo é um pouco pesado, pois usa muito o Cometd (mecanismo Push) e algumas colunas são criptografadas. Para isso, resolvi monitorar a aplicação, mas por algum motivo o VisualVM não mostra amostragem e uso de CPU. Diz que a JVM não é suportada.

O segundo problema que estou tendo é que o tempo de atualização do VisualVM é muito lento. Quero diminuir os intervalos entre os quais ele monitora, mas não tive sorte em encontrar essa opção também.

Estou executando o Debian Wheezy, 64 bits e Java8-64 bits. O contêiner do aplicativo é Apache Tomcat e o banco de dados é Postgres. Jstatd já foi iniciado. Sou novo em criação de perfil e monitoramento, qualquer ajuda seria boa.

Aqui estão as capturas de tela. Por favor, dê uma olhada.

Obrigado.

Atualizar

Aqui está a captura de tela atualizada de sua aparência sem a configuração mencionada abaixo:

Captura de tela

E meu catalina.sh tem algumas configurações de servidor como:

CATALINA_OPTS="$CATALINA_OPTS -server -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:+UseAdaptiveSizePolicy -Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=portnumer -Dcom.sun.management.jmxremote.authenticate=true 
    -Dcom.sun.management.jmxremote.ssl=false"

Aqui está a configuração acima com o novo GC:

Captura de tela atualizada após novo GC

Responder1

Adicionar isso ao aplicativo JVM de destino funciona para mim:

-Djava.rmi.server.hostname=localhost

informação relacionada