jvisualvm远连接程
jstatd配置
需要在被JVM内存监控的服务器上面,通过jstatd来启动RMI服务。
新建个文件jstatd.all.policy文件内容如下:
Java代码
- grantcodebase"file:${java.home}/../lib/tools.jar"{
- permissionjava.security.AllPermission;
- };
启动命令如下:
Java代码
- //默认端口为1099
- jstatdjstatd-J-Djava.secu
- rity.policy=jstatd.all.policy
- //指定hostname一般情况需要重新指定hostname,否则连接不成功
- jstatd-J-Djava.rmi.server.hostname=192.168.8.7
- -J-Djava.security.policy=test/jstatd.all.policy
- //指定hostname指定端口
- jstatd-J-Djava.rmi.server.hostname=192.168.8.7
- -J-Djava.security.policy=test/jstatd.all.policy-p8888
- //启动JMX
- jstatd-J-Djava.rmi.server.hostname=192.168.8.7
- -J-Djava.security.policy=test/jstatd.all.policy
- -J-Dcom.sun.management.jmxremote.port=8888
- -J-Dcom.sun.management.jmxremote.ssl=false
- -J-Dcom.sun.management.jmxremote.authenticate=false
- //后台启动
- nohupjstatd-J-Djava.rmi.server.hostname=192.168.8.7
- -J-Djava.security.policy=test/jstatd.all.policy-p8888&
- //默认端口为1099
- jstatdjstatd-J-Djava.security.policy=jstatd.all.policy
- //指定hostname一般情况需要重新指定hostname,否则连接不成功
- jstatd-J-Djava.rmi.server.hostname=192.168.8.7
- -J-Djava.security.policy=test/jstatd.all.policy
- //指定hostname指定端口
- jstatd-J-Djava.rmi.server.hostname=192.168.8.7
- -J-Djava.security.policy=test/jstatd.all.policy-p8888
- //启动JMX
- jstatd-J-Djava.rmi.server.hostname=192.168.8.7
- -J-Djava.security.policy=test/jstatd.all.policy
- -J-Dcom.sun.management.jmxremote.port=8888
- -J-Dcom.sun.management.jmxremote.ssl=false
- -J-Dcom.sun.management.jmxremote.authenticate=false
- //后台启动
- nohupjstatd-J-Djava.rmi.server.hostname=192.168.8.7
- -J-Djava.security.policy=test/jstatd.all.policy-p8888&
启动通过:netstat-an|grep8888可以查看端口是否已经被监听,用JAVA_HOME/bin/jmap查看java进程:
Java代码
- //查看本机的情况
- jps
- //查看远程计算机192.168.8.7的情况(默认1099端口)
- jps192.168.8.7
- //查看远程计算机192.168.8.78888端口
- jpsrmi://192.168.8.7:8888
打开jvisualvm界面如下:
右击远程选择添加远程主机:
如果重新指定了jstatd端口,选择高级设置修改端口,如下图:
如果同时配置了JMX,可以在添加JMX连接如下图:
添加后如图所示: