实现的效果
第一
在服务器上的java安装的bin下(如/usr/local/jdk8/bin)新建一个文件
jstatd.all.policy
内容如下
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
第二
启动
执行命令
jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=101.201.xxx.xxx -p 1099 -J-Djava.rmi.server.logCalls=true
## 启动后会开启注册端口1099和一个随机的连接端口,注册端口也可通过-p参数指定,如./jstatd -J-Djava.security.policy=all.policy -p 10003 &
##-J-Djava.security.policy=jstatd.all.policy =号后面的是文件的绝对路径;
##-J-Djava.rmi.server.logCalls=true 打开日志,如果客户端有连接过来的请求,可以监控到,便于排错;
##-J-Djava.rmi.server.hostname=101.201.xx.xxx 指明本机 hostname 对应的本机地址,确保该地址可以给客户机访问。因为有的服务器 hostname 对应的 ip 不一定是外网能连上的,最好在这里直接明确指定;(但是101.201.xxx.xxx这个地址是我对外的服务器地址)
##-p 1099 指定服务的端口号,默认是1099。也是可选参数。
第三
配置防火墙
除了把1099添加到防火墙规则外,还需要找到另外一个随机端口,也加入到规则中,执行
netstat -anp | grep jstatd
-
设置防火墙,将配置的端口开放出去(重点)
除了把1099添加到防火墙规则外,还需要找到另外一个随机端口,也加入到规则中,这下面的端口号都要释放(每次从新运行,端口号都不一样)
第四
打开window本地的visualvm,一般都是1.8版本以内的都有,(可能再高点的就没有了需要格外安装,如果有的话就略过安装),安装地址:VisualVM: Homehttps://visualvm.github.io/index.html
双击点击进入的页面就是
右击远程,添加远程服务器,服务器添加的是外网ip地址(默认连接的端口号是1099),点击确定就可以了
当然,你会没有GC的插件,需要在工具—>插件-->可用插件,找Visual GC
安装好后便可以图形化观察jdk的虚拟机的运行情况了