Mac下JVisualVM基本使用

1、Mac下安装JVisualVM:

http://visualvm.java.net/download.html下载安装文件进行安装


2、启动JVisualVM,界面如下:

Mac下JVisualVM基本使用_第1张图片

3、启动后的JVisualVM会自动检测本地的java应用

4、远程监控linux服务器

1)创建一个文本文件,内容如下:

grant codebase "file:${java.home}/../lib/tools.jar" {

   permission java.security.AllPermission;

}; 

2)将文本文件重命名为jstatd.all.policy,并root登陆,上传到linux服务器jdk/bin目录下(如: /opt/jdk1.6.0_24/bin/)

3)要使Java VisualVM成功连接到远程服务器上,服务器端应该在/etc/hosts文件中把本机地址设为本机的IP地址。使用hostname -i命令查看,如果显示的是127.0.0.1或者与本机实际IP不一致的话,需要把/etc/hosts文件中相应的地址改为本机实际IP,如下:

172.17.253.182       DevOpsVM31.localdomain    DevOpsVM31    localhost wx-test
172.17.253.182             DevOpsVM31.localdomain    DevOpsVM31    localhost    ipv6-localhost    ipv6-loopback

4)启动jstatd服务(jvm监控服务),默认端口为1099,也可以自定义一个接口,如1103

[root@DevOpsVM07 bin]#cd  /opt/jdk1.6.0_24/bin/

[root@DevOpsVM07 bin]# rmiregistry 1103&

[root@DevOpsVM07 bin]# jstatd -J-Djava.security.policy=jstatd.all.policy  -J-Djava.rmi.server.logCalls=true -p 1103


jstatd开始运行后,使用 CTRL+A+D 断开 screen 界面,回到 shell 界面。如果想切换回 jstatd 运行界面的话,使用 screen -r -d 命令即可。 


5)ps -ef|grep java后可以看到jstatd的进程

root      6183  3663  8 17:44 pts/1    00:00:00 jstatd -J-Djava.security.policy=jstatd.all.policy  -J-Djava.rmi.server.logCalls=true -p 1103 &

6)打开JVisualVM,添加需要监控的远程服务器ip地址,并设置监听的端口为被检测机器启动jstatd的端口,如下

Mac下JVisualVM基本使用_第2张图片

Mac下JVisualVM基本使用_第3张图片

7)连接成功后应该会显示Jstatd及其PID,如下:

Mac下JVisualVM基本使用_第4张图片

8)发现在监控远程服务器时,没有监控到cpu数据,这时需要在服务器端建立 JMX ,建立 JMX 提示要求端口号。( JMX: Java Management Extensions ,即 Java 管理扩展 , 是一个为应用程序、设备、系统等植入管理功能的框架。 JMX 可以跨越一系列异构操作系统平台、系统体系结构和 网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用 。而 Visual VM是通过 JMX 来和远程 Java 应用联系的 )。修改远程服务器tomcat的catalina.sh的参数,如下:

JAVA_OPTS="-Xms1024m -Xmx2048m -XX:MaxNewSize=512m -XX:MaxPermSize=512m -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"


9)重启被检测远程机器的tomcat,并打开mac上的JVisualVM,添加JMX,如下:

Mac下JVisualVM基本使用_第5张图片

Mac下JVisualVM基本使用_第6张图片


其他的详尽使用说明见JVisualVM帮助


参考博客:http://ihuangweiwei.iteye.com/blog/1219302

你可能感兴趣的:(Mac下JVisualVM基本使用)