我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比jprofiler对系统资源尤其是内存的消耗是非常庞大,jdk1.6开始自带的visualvm就是不错的监控工具.
这个工具就在java_home\bin\目录下的jvisualvm.exe, 双击这个文件就能看到一个比较直观的界面
从左边applications树中可以知道,不光可以监控本地jvm运行情况, 还可以监控远程机器上的jvm运行情况.
本地监控:只要打开某个java程序就会自动的加入到本地监控中.
因为本地监控无需配置, 所以这里主要介绍监控远程jvm
要进行远程监控, 本机的visualvm就必须和远程的jvm要进行通信, visualvm目前支持两种remote connection方式.
分别是jstatd和jmx方式: 这里我主要介绍的是通过jmx方式.
通过jmx连接远程机器, 需要经过下面的配置:
1. 修改远程机器jdk配置文件 (我这里远程机器是linux).
a.进入java_home\jre\lib\management\目录
b.拷贝jmxremote.password.template这个文件到当前目录, 并改名为jmxremote.password
c.打开jmxremote.password文件,去掉 # monitorrole qed 和 # controlrole r&d 这两行前面的注释符号
2. 修改远程机器上需要被监控的程序的配置文件 (我这里是监控tomcat容器内部署的应用).
a.进入tomcat_home\bin目录
b.打开catalina.sh文件,加入如下信息:
1
2
3
4
|
java_opts="$java_opts -djava.rmi.server.hostname= 192.168 . 0.237 -dcom.sun.management.jmxremote.port= 18999 -dcom.sun.management.jmxremote.ssl= false -dcom.sun.management.jmxremote.authenticate= false " |
c.重启tomcat服务.
3. 客户端visualvm配置 (我客户端用的是winxp).
a.直接反键点击remote,选择add remote host...
b.在弹出的界面中输入远程机器的ip地址(192.168.0.237),这个ip地址会加入到remote节点下.
c.反键点击这个ip地址,选择add jmx connection, 在弹出的界面中输入刚配置的端口号(18999), 这个连接会加入到该ip节点下.
d.反键点击这个连接,选择open.
此时就可以看到监控的界面, 从界面上我们可以看到cpu信息, 内存信息, 统计加载类数量,线程信息.
以上这篇java visualvm监控远程jvm(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/dmfcjd/p/7723627.html