在jdk1.6中Oracle提供了一个新的可视化的。JVM监控工具Java VisualVM。jvisualvm.exe在JDK的bin目录下。
从界面上看还是比较简洁的,左边是树形结构,自动显示当前本机所运行的Java程序,还可以添加远程的Java VM,其中括号里面的PID指的是进程ID。OverView界面显示VM启动参数以及该VM对应的一些属性。Monitor界面则是监控Java堆大小,Permgen大小,Classes和线程数量。Profiler界面比较有趣,看样子似乎可以动态的对某个Java程序进行调优了。
nohup java -Xms256M -Xmx512M -XX:MaxPermSize=128M -Dprogram.name=xxxSG -Dfile.encoding=GBK -cp $JARS com.boco.zhjk.main.Main > $RAS_HOME/bin/nohup.out &
改为
nohup java -Xms256M -Xmx512M -XX:MaxPermSize=128M -Dprogram.name=xxxSG -Dcom.sun.management.jmxremote.port=9998 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=10.0.13.191 -Dfile.encoding=GBK -cp $JARS com.boco.zhjk.main.Main > $RAS_HOME/bin/nohup.out &
参数说明:
指定了JMX启动的代理端口,这个端口就是visualvm要连接的端口(9998端口不能被别的程序使用netstat -an|gerp 9998) Dcom.sun.management.jmxremote.port=9998 指定了JMX是否启用ssl Dcom.sun.management.jmxremote.authenticate=false 指定了JMX是否启用鉴权(需要用户名,密码鉴权) Dcom.sun.management.jmxremote.authenticate=false 指定了服务器主机名 Djava.rmi.server.hostname=192.168.58.164
而后在本机启动jvisualvm,即可观察程序相关参数