首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用VisualVM分析Tomcat应用程序

用VisualVM分析Tomcat应用程序
EN

Stack Overflow用户
提问于 2009-12-12 03:44:36
回答 4查看 62.1K关注 0票数 61

我想分析一个使用VisualVM工具在Tomcat上运行的应用程序。不幸的是,当我告诉VisualVM分析Tomcat时,Tomcat打印出几条消息,表明它正在连接到一个分析工具,然后简单地退出。

详细信息…

我使用的是Windows XP、Tomcat6、VisualVM 1.2.1和JDK 1.6.0_11。

在Visual VM中,我右键单击Tomcat应用程序,然后在Profiler选项卡中选择“Profile”

  • ,然后按下Memory按钮(或者CPU button).

  • Tomcat退出

请注意,如果我右键单击Tomcat应用程序并选择“Heap Dump”,似乎可以正常工作。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-12-17 00:27:58

我现在可以使用我的Tomcat应用程序进行VisualVM分析了。我需要向tomcat启动添加以下参数:

代码语言:javascript
复制
-Dcom.sun.management.jmxremote.port=8086
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

使用VisualVM监控TomcatHere is a nice article

票数 87
EN

Stack Overflow用户

发布于 2011-09-19 22:37:05

是的,我们确实分析Tomcat应用程序。

转到catalina.batcatalina.sh,这是您的JAVA_OPTS (我使用的是Tomcat6.0.16):

代码语言:javascript
复制
-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应该如下所示

代码语言:javascript
复制
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。这是我的用于JDK8的setenv.sh。缺少一些其他设置,但很好地开始使用。

代码语言:javascript
复制
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

票数 7
EN

Stack Overflow用户

发布于 2016-05-04 17:45:37

我使用的是Tomcat7,完整的配置需要更多的参数才能工作。

代码语言:javascript
复制
-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/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1890431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档