您的位置:首页 > 其它

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

2017-11-29 10:13 267 查看
利用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
4000
; 
    };


第二, 在当前目录中(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)



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



参考:

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

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐