如何用jconsole来跟踪Java系统性能问题

来源:互联网 发布:js取数组前几个 编辑:程序博客网 时间:2024/06/06 05:23

JDK配置:

打开:java/jdk1.5.0/jre/lib/management目录,修改management.properties文件
无SSL加密:(去掉161行注释)
#For RMI monitoring without SSL use the following line
com.sun.management.jmxremote.ssl=false
无用户密码验证:(去掉203行注释)
# For RMI monitoring without any checking use the following line
com.sun.management.jmxremote.authenticate=false


tomcat配置:

1. Windows,打开bin/catalina.bat,在doStart后面加上set JAVA_OPTS,端口可以自己设置,例如:

:doStart
shift

set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.port=9393

2010年4月22日改成以下文字(原因:未运行jmxremote导致问题)
set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port="9393"

运行tomcat(startup.bat),查看9393端口是否已经被Java所监听(netstat -ano)

2. Linux,打开bin/catalina.sh,在doStart后面加上:

JAVA_OPTS="$JAVA_OPTS "-Dcom.sun.management.jmxremote.port=9393

2010年4月22日改成以下文字(原因:未运行jmxremote导致问题)
JAVA_OPTS="$JAVA_OPTS "-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9393

运行tomcat(startup.sh),查看9393端口是否已经被Java所监听(netstat -tlunp)

(!!!注意防火墙是否已打开,可能导致RMI协议无法连接该端口)

运行jconsole:

打开Windows命令行,如果本机上已经装有JDK1.5,并且路径配置正确,直接键入:jconsole
本地系统可以直接连接,远程需要自己输入IP连接。

 

linux下的新配置方法

之前的配置在linux下不起作用,只能localhost访问,而不能远程查看。现找到最新的配置办法,直接在tomcat的catalina.sh中添加,结果可以远程访问,没有任何问题。补充如下:

tomcat中配置jconsole远程访问(附命令)
catalina.bat:
set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port="9004" -Dcom.sun.management.jmxremote.authenticate="false" -Dcom.sun.management.jmxremote.ssl="false"
catalina.sh:
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9004 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

2010年4月22日改为:
JAVA_OPTS="$JAVA_OPTS "-Dcom.sun.management.jmxremote" "-Dcom.sun.management.jmxremote.port=8999" "-Dcom.sun.management.jmxremote.authenticate=false" "-Dcom.sun.management.jmxremote.ssl=false