使用本地的jvisualvm工具远程连接jstatd。
jvisualVM远程连接jstatd一般作为临时监控使用,例如:测试环境做压力测试时需要监控内存、以及其他的指标使用情况;线上服务出现内存使用异常等。
如需要功能更全面,更规范的监控方式,可使用一些第三方监控服务,例如:Spring Boot Admin
spring boot admin 搭建(非常简单)_springbootadmin搭建-CSDN博客
1 、服务器端启动jstatd
1.1 创建策略文件
在/home
目录(有权限的目录都可以)下创建策略文件jstatd.all.policy
,内容如下
这里是jdk1.8,不同版本的jdk可能会有所差异
grant codebase "file:${java.home}/../lib/tools.jar" {permission java.security.AllPermission;
};
1.2 启动jstatd
参数说明:
-J-Djava.security.policy 指定策略文件的位置
-J-Djava.rmi.server.logCalls 开启调用日志
-J-Djava.rmi.server.hostname 指定当前server的ip
-p 端口,可不指定端口,默认是1099
jstatd -J-Djava.security.policy=/home/jstatd.all.policy -J-Djava.rmi.server.logCalls=true -J-Djava.rmi.server.hostname=161.11.22.11 -p 1099
启动成功后可以看见输出的日志:
一般窗口启动即可,ctrl +c停止。后台长期启动就没必要了,也不安全。
2、 在本地启动jvisualVm
位置在jdk安装目录的bin目录下,例:E:\java\jdk\jdk1.8.0_333\bin\jvisualvm.exe,双击打开,填写连接信息,端口默认1099
这就可以监控远程服务器上各服务的jvm使用情况了。
3、jvisualVm说明
jVisualVM 是一个可视化的 Java 虚拟机 (JVM) 监控、分析工具,它建立在 Java 编程语言上,并提供了一个用于分析和解决与 Java 应用程序性能相关的问题的图形用户界面。
以下是一些使用 jVisualVM 的常见场景和方法:
- 监控本地和远程的 Java 应用程序。
- 分析内存使用情况,查找内存泄漏。
- 分析线程问题,如死锁。
- 查看 JVM 参数。
- 使用插件扩展功能
位置在jdk安装目录的bin目录下,例:E:\java\jdk\jdk1.8.0_333\bin\jvisualvm.exe
3.1 jVisualVM插件安装
jVisualVM默认的功能可能不满足我们所需功能,如需要更多的功能,需要安装插件,主页》工具》插件,选择需要的插件安装即可。
这里安装了visual GC 插件:
OK!