Domanda

Vorrei analizzare un'applicazione che gira su Tomcat con lo strumento VisualVM. Purtroppo, quando dico VisualVM al profilo Tomcat, Tomcat stampa un paio di messaggi che indicano che si collegano a uno strumento di profilo e poi esce semplicemente.

Dettagli ...

Sto usando Windows XP, Tomcat 6, VisualVM 1.2.1, e JDK 1.6.0_11.

  1. In Visual VM, right-click sull'applicazione Tomcat e selezionare “Profilo”
  2. Nella scheda Profiler, si preme il pulsante di memoria (o il pulsante CPU).
  3. Tomcat esce

Si noti che se right-click sull'applicazione Tomcat e selezionare “heap dump” che sembra funzionare OK.

È stato utile?

Soluzione

Ho VisualVM profilatura a lavorare con la mia applicazione Tomcat ora. Avevo bisogno di aggiungere i seguenti parametri per l'avvio Tomcat:

-Dcom.sun.management.jmxremote.port=8086
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

Ecco un bell'articolo sul monitoraggio Tomcat con VisualVM.

Altri suggerimenti

Si facciamo il profilo delle applicazioni Tomcat.

Vai catalina.bat o catalina.sh e questo al vostro JAVA_OPTS (sto usando Tomcat 6.0.16):

-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

Il JAVA_OPTS dovrebbe assomigliare

set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties" -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

Aggiornamento dopo Ryan commento che è meglio usare setenv.sh. Questo è il mio setenv.sh per JDK 8. mancanti alcune altre impostazioni, ma buono per iniziare.

SUN_JVM_OPTS="
    -server \
    -XX:MaxMetaspaceSize=3G \
    -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled \
    -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 \
    -XX:+ScavengeBeforeFullGC -XX:+CMSScavengeBeforeRemark \
    -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=3 -XX:GCLogFileSize=2M \
    -XX:+HeapDumpOnOutOfMemoryError \
    -Dsun.net.inetaddr.ttl=60 \
    -Dcom.sun.management.jmxremote  \
    -Dcom.sun.management.jmxremote.port=8480 \
    -Dcom.sun.management.jmxremote.authenticate=false \
    -Dcom.sun.management.jmxremote.ssl=false"


# Set custom application options here
APPLICATION_OPTS="-Dlog4j.configurationFile=patht-to-log/log4j2.xml -Dlog4j.debug=true "

JVM_OPTS="$GENERAL_JVM_OPTS $SUN_JVM_OPTS"
CATALINA_OPTS="$JVM_OPTS $APPLICATION_OPTS"
echo "Tomcat started with settings "$CATALINA_OPTS

Una volta che si rilascia il setenv.sh nella directory bin, è possibile vedere i cambiamenti nella console all'avvio.

Ecco un altro passo a passo al profilo applicazioni Tomcat con Visual VM: Risoluzione dei problemi delle prestazioni delle applicazioni con Visual VM

Sto usando Tomcat 7 e la configurazione completa reqires più parametri con cui lavorare.

-Dcom.sun.management.jmxremote=true 
-Dcom.sun.management.jmxremote.port=9090 # port to connect JMX 
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=50.112.22.47" # IP of the server running tomcat (it is necessary)

fonte: http://blog.markshead.com / 1129 / biella-visual-vm-to-tomcat-7 /

Tutto quello che dovete fare è impostare le opzioni VM:

  

-XX: + UnlockCommercialFeatures -XX: + FlightRecorder -XX: + UnlockDiagnosticVMOptions -XX: + DebugNonSafepoints -XX: FlightRecorderOptions = stackdepth = 512

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top