启动jstatd
VisualVM连接远程服务器有两种方式:JMX和jstatd,两种方式都不能完美支持所有功能,例如JMX不支持VisualGC,jstatd不支持CPU监控,实际使用可同时配置上并按需选用。
jstatd在jdk的bin目录之下
需要配置安全策略,我保存为bin目录下的jstatd.all.policy文件(待会需要指定这个文件)
grant codebase "file:D:/MyWork/MyDevelopmentTools/jdk8/lib/tools.jar" {
permission java.security.AllPermission;
};
指定刚刚配置的安全策略和ip运行,linux下可以加上&后台运行
jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=10.236.163.122
如果不确定ip如何填写可以参考这篇博客中提到的陷阱部分
jps检查
先再本地看看自己跑着的java进程(linux下注意用户是否和运行java程序的用户相同)
再通过另一台电脑远程jps这台电脑的进程
jps [换成这台电脑的ip]
连接上了就可以进行下一步,否则需要检测端口或者防火墙。可以参照这篇博客的踩坑部分。
启动jvisualvm
jvisualvm同样在jdk的bin目录下
打开后选择添加远程主机
输入ip即可
可以看到进程和pid
右侧则有详细的监控信息,有些需要插件支持。
最后,如果想用这个工具走一些案例的话,推荐这篇博客。