前面的文章中我们介绍了jconsole,本篇文章我们来介绍下jvisualvm。jvisualvm(All-in-One Java Troubleshooting Tool)是jdk1.6开始引入的JVM监控工具,其基本上包含了jconsole的功能且比jconsole更加强大,主要功能如下图:
1、jvisualvm启动
系统运行中输入jvisualvm (需要先配置环境变量,一般开发人员搭建Java开发环境时都会配置)命令,点击“确定”打开jvisualvm页面,如下图所示:
首次打开jvisualvm时最好先安装jvisualvm插件,jvisualvm插件提供了许多扩展功能,不安装插件只能使用jvisualvm的基本的监控、线程面板等功能。
2、jvisualvm插件的安装
点击菜单栏中“工具”—>“插件”后弹出插件管理框,如下图所示:
在弹出框中点击“检查更新”,报如下图所示错误(小编使用的JDK版本是1.8.0_25,非此版本的JDK可能会展示不同的错误):
错误的原因是:默认的连接已经关闭,新地址已经迁移到github,网址https://visualvm.github.io/pluginscenters.html里面有不同版本jdk对应的插件中心地址,如下图所示:
选择对应JDK版本的插件中心地址,点击“设置”如下图所示:
点击右侧的“编辑”按钮,进行编辑:
修改为本机JDK版本对应的插件中心地址,点击按钮“确定”保存后会自动检测更新,如下图所示是检查后发现存在可用的插件:
选择需要的插件进行更新,如下图所示:
安装插件完成后,可以在“已安装”页签中查看已安装的插件,如下图所示:
3、jvisualvm的使用
jvisualvm可以监控本地Java进程,也可以监控远程Java进程。但一般测试环境或者生产环境的Java服务都是部署远端服务器上,所以我们重点讲如何通过jvisualvm监控远程Java进程。而jvisualvm要实现监控远程Java进程,需要远程服务器在启动Java进程时支持JMX连接。
要配置远程Java进程支持JMX连接,需要在启动Java进程时加入以下属性:
-Dcom.sun.management.jmxremote.port=7091
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
上述配置的意义是开启JMX连接端口7091,同时配置不需要ssl安全认证方式连接(一般我们的监控的服务器都是在本地局域网中,所以没有必要配置ssl安全认证方式连接,若要配置ssl安全认证方式连接,还需要配置连接的用户名及密码等)
假如远程Java进程已经配置了支持JMX连接,我们点击菜单“文件”—> 添加JMX连接,在弹出框中输入远程进程的IP和端口,如:172.30.14.242:7091(小编使用的服务器IP是172.30.14.242,配置的支持JMX的端口是7091),如下图所示:
输入完成后点击“确定”按钮,则新增了远程进程,如下图所示:
双击应用程序框中,已新增的远程节点下的远程进程,右侧窗口展示了远程概述信息,如下图所示:
在右侧窗口中包含页签概述、监视、线程、抽样器等,如果安装了其他插件,此处页面还会有所增加,如下图所示:
jvisualvm基本的概述、监视、线程功能与jconsole中的功能差别不大,此处不在赘述。(感兴趣的同学可以查看×××)。
4、生产并浏览堆转储快照
Dump文件生成的方式有两种:
a、在应用程序窗口中右键点击应用程序节点,在弹出框中选择“堆Dump”;
b、在右侧已打开的应用程序“监视”标签页中单击“堆Dump”
点击按钮“确定”生产Dump文件:
将远程服务器上的Dump文件下载到本地,点击菜单“文件”——》“载入”后选择下载的Dump文件载入,如下图所示:
可以查看应用程序Dump时的运行时参数,线程堆栈、类的实例数量、容量信息以及实例的具体属性信息。
5、分析程序性能
在抽样器页面中提供了程序运行期间方法级的COU执行时间分析及内存分析,由于抽样分析过程对程序运行性能有较大的影响,一般我们只在测试环境中使用此功能。
如下图所示,点击“CPU”抽样分析:
CPU分析是统计抽样期内每个方法的执行次数、执行耗时等,以分析出哪个方法CPU耗时较长,哪个方法频繁执行,为程序性能优化提供数据。
点击“内存”抽样分析:
内存分析是统计抽样期内每个方法关联的对象及所占的空间,以分析出哪个方法关联对象多,哪个方法占用空间较大,为程序性能优化提供数据。
以上介绍了可视化工具jvisualvm插件的安装及jvisualvm基本使用,希望对大家有所帮助。后续我们还会带来最强大可视化工具jmc的介绍,感兴趣的同学可以关注我们的微信公众号。
Java性能监控和故障诊断可视化工具之jvisualvm
最新推荐文章于 2024-06-13 21:45:00 发布