Visual GC插件「不受此JVM支持」问题

利用visual vm监控服务器上的java虚拟机, 在默认情况下, 是没有办法使用 visual vm的插件visual gc的。 安装插件后打开visual gc的页签, 会显示「不受此JVM支持」

如下图


要解决这个问题需要Java自带的Jstatd服务, 使用步骤如下


第一, 在服务器上的java安装的bin下(如/usr/local/java/jdk1.8.0_91/bin)新建一个文件

 文件名为jstatd.all.policy

 文件内容如下


    grant codebase "file:${java.home}/../lib/tools.jar" { 
        permission java.security.AllPermission; 
    };


第二, 在当前目录中(bin)执行如下命令


./jstatd -J-Djava.rmi.server.hostname=192.168.110.227 -J-Djava.security.policy=jstatd.all.policy -p 9999


命令中的hostname是服务器的IP地址,-p是端口,这两项需要自己指定(网上使用默认IP地址和端口的命令,但我尝试了无法生效)。如果不指定端口。那么端口的默认值为1099。执行完毕后,使用telnet命令测试端口是否被监听。  如果一切正常, 说明jstatd服务已经配置成功了。(

1.启动jstatd

cd $JAVA_HOME/bin
./jstatd -J-Djava.security.policy=all.policy &
启动后会开启注册端口1099和一个随机的连接端口,注册端口也可通过-p参数指定,如./jstatd -J-Djava.security.policy=all.policy -p 10003 &
2.设置防火墙
除了把1099添加到防火墙规则外,还需要找到另外一个随机端口,也加入到规则中
执行
netstat -anp | grep *jstatd

可以看到除了1099,jstatd还监听了53040端口,把这个也加入到规则中,添加方法参照2.5
(注意:这个随机端口重启后会变化))

 

第三,在电脑上打开visual vm软件,右击左侧菜单中的「远程」菜单项,输入目标服务器IP地址添加一个远程主机。 然后再右击新加的主机菜单项, 在弹出的菜单中选择「添加jstatd连接」。 在弹出的对话框中的文本框中输入在第二步配置中指定的端口号(默认是1099)


1475209875144063491.png


点击确定后,Visual GC插件就可以正常使用了


1475209886896013003.png

参考:

Visual GC插件「不受此JVM支持」问题


 


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值