使用VisualVM配置Tomcat应用程序

时间:2009-12-11 19:44:36

标签: tomcat6 visualvm

我想用VisualVM工具分析在Tomcat上运行的应用程序。不幸的是,当我告诉VisualVM描述Tomcat时,Tomcat打印出一些消息,表明它正在连接到一个配置文件工具然后只是退出。

详细...

我使用的是Windows XP,Tomcat 6,VisualVM 1.2.1和JDK 1.6.0_11。

  1. 在Visual VM中,我右键单击Tomcat应用程序并选择“配置文件”
  2. 在Profiler选项卡中,我按下Memory按钮(或CPU按钮)。
  3. Tomcat退出
  4. 请注意,如果我右键单击Tomcat应用程序并选择似乎正常工作的“堆转储”。

4 个答案:

答案 0 :(得分:86)

我现在正在使用VisualVM应用程序进行Tomcat分析。我需要将以下参数添加到tomcat启动:

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

Here is a nice article使用Tomcat监控VisualVM

答案 1 :(得分:7)

是的,我们会对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后更好。这是JDK 8的setenv.sh。缺少其他一些设置,但开始时很好。

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应用程序的另一个分步教程: Trouble shooting application performance with Visual VM

答案 2 :(得分:1)

我正在使用Tomcat 7,完整配置需要更多参数才能工作。

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

答案 3 :(得分:0)

您只需设置这些VM选项:

  

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