远程监控JVM--VisualVM

本文介绍如何使用VisualVM进行本地和远程JVM监控,包括界面展示、功能介绍及远程连接配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

From: http://www.iteye.com/topic/516447

 

对于使用命令行远程监控jvm太麻烦?那可以试试 sun 提供的 VisualVM jdk1.6 自带了,可以到 bin 目录下找到它。

         什么也不说了,直接运行此 exe ,打开界面如下:

 



 

(图 1

         (上图 1 左边的数可以看到, VisualVM 分为 3 类, Local 它会自动侦测到,并显示出来)

         双击 Local 下的任一节点,看到右边的变化(有点像 JProfiler

 

 



 



 

(图 2

         看看 Visual GC 的界面( Java Heap 的使用,一目了然)

 



 

(图 3

         再在左边的树形窗口,右键看看(看到了 Thread Dump, Heap Dump

 



 

(图 4

         Thread Dump 很快,马上就可以看到结果

 



 

(图 5

         Heap Dump 要稍花费一些时间(可以看到当前 heap 里对象的数量及占用的比例,做 OOM 很好用)

 



 

(图 6

                   双击每一行,可以看到具体的信息

 



 

(图 7

 

 

我们再看一下图 1 ,左边的窗口中,第二个节点 —Remote ,它可以用来操作远程机器。远程机器需要启动一个daemon:jstatd

1、远程机器启动 jstatd

      1.1、         首先需要准备一个 java.policy 文件,保存到如 /home/admin/jstatd.java.policy

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

   permission java.security.AllPermission;

};

      1.2、         启动 jstatd

jstatd -J-Djava.security.policy=/home/admin/jstatd.java.policy -J-Djava.rmi.server.logCalls=true

      1.3、         同时需要执行一个命令看看( linux 需要)

Hostname –i

如果显示是 127.0.0.1 ,则需要修改 /etc/hosts 文件,去掉对本机名的配置,让本机名解析到它的 IP 地址,如 10.20.131.214

2 、连接远程机器

 



 

( 8)

3 、点击 OK ,看到会连接到远程机器,并显示出它下面的 java 进程。

 



 

(图 9

      到   这个时候的操作,就和上面 Local 的描述操作一样了。

 

最后,要注意的地方:

最好使用 jdk1.6 以上版本,不然 visualVM 很多功能不能用。

你自己也可以写一个 VisualVM 插件 ( 基于 NetBeans 的插件体系 ) ,完成特殊的任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值