update for tomcat6 visualvm

tomcat6 - for - Aplicación de Tomcat de perfil con VisualVM



tomcat 9 server download (4)

Me gustaría crear un perfil de una aplicación que se ejecute en Tomcat con la herramienta VisualVM. Lamentablemente, cuando le digo a VisualVM que perfilé Tomcat, Tomcat imprime un par de mensajes que indican que se está conectando a una herramienta de perfil y luego simplemente sale.

Detalles ...

Estoy usando Windows XP, Tomcat 6, VisualVM 1.2.1 y JDK 1.6.0_11.

  1. En Visual VM, hago clic derecho en la aplicación Tomcat y selecciono "Perfil"
  2. En la pestaña Perfil, presiono el botón Memoria (o el botón CPU).
  3. Tomcat sale

Tenga en cuenta que si hago clic derecho en la aplicación Tomcat y selecciono "Heap Dump", parece que funciona bien.


Estoy usando Tomcat 7 y la configuración completa requiere más parámetros para trabajar.

-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)

fuente: http://blog.markshead.com/1129/connecting-visual-vm-to-tomcat-7/


Sí, perfilamos las aplicaciones de Tomcat.

Vaya a catalina.bat o catalina.sh y esto a su JAVA_OPTS (estoy 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

Su JAVA_OPTS debería verse como

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

Actualizado después de que Ryan comenta que es mejor usar setenv.sh . Este es mi setenv.sh para JDK 8. Faltan algunas otras configuraciones pero es bueno para empezar.

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 vez que suelta el directorio setenv.sh in bin, puede ver los cambios en la consola al inicio.

Aquí hay otro tutorial paso a paso para perfilar las aplicaciones de Tomcat con Visual VM: el rendimiento de la aplicación de resolución de problemas con Visual VM


Todo lo que necesita hacer es configurar estas opciones de VM:

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


Tengo perfiles de VisualVM trabajando con mi aplicación Tomcat ahora. Necesitaba agregar los siguientes parámetros al inicio de tomcat:

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

Aquí hay un buen artículo sobre la supervisión de Tomcat con VisualVM .