使用VisualVMconfigurationTomcat应用程序

我想通过VisualVM工具来分析在Tomcat上运行的应用程序。 不幸的是,当我告诉VisualVM分析Tomcat时,Tomcat会输出一些消息,指出它正在连接到一个configuration文件工具,然后退出。

细节…

我正在使用Windows XP,Tomcat 6,VisualVM 1.2.1和JDK 1.6.0_11。

  1. 在Visual VM中,我右键单击Tomcat应用程序并select“Profile”
  2. 在Profiler选项卡中,按存储器button(或CPUbutton)。
  3. Tomcat退出

请注意,如果我右键单击Tomcat应用程序并select“堆转储”似乎工作正常。

我现在使用VisualVM分析与我的Tomcat应用程序一起工作。 我需要添加以下参数到tomcat启动:

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

这里有一篇关于用VisualVM监视Tomcat 的好文章 。

是的,我们configuration了Tomcat应用程序。

转到catalina.batcatalina.sh ,这对你的JAVA_OPTS (我使用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 

你的JAVA_OPTS应该看起来像

 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 

Ryan评论说,更新后使用setenv.sh更好。 这是我的setenv.sh JDK 8.缺less其他一些设置,但很好开始。

 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 

一旦将setenv.sh放入bin目录,就可以在启动时看到控制台中的更改。

下面是另一个一步一步的教程,用Visual VM剖析Tomcat应用程序:使用Visual VM解决应用程序性能问题

我正在使用Tomcat 7,完整的configuration需要更多的参数来工作。

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

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

所有你需要做的就是设置这些VM选项:

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