JVM介绍 专题
您的位置:java > JVM介绍专题 > jconsole与jvisualvm
jconsole与jvisualvm
作者:--    发布时间:2019-11-22 03:13:15

jvisualvm同jconsole都是一个基于图形化界面的、可以查看本地及远程的JAVA GUI监控工具,可以认为jvisualvm是jconsole的升级版,因此这里不再介绍jconsole,只介绍jvisualvm。jvisualvm是一个综合性的分析工具,可以认为其整合了jstack、jmap、jinfo等众多调试工具的功能,并以图形界面展示.

jvisualvm启动很简单,直接在命令行中输入"jvisualvm"即可。之后出现下图:

QQ截图20170214222729.png

侧边框介绍:

本地:如果你本地有java进程启动了,那么在本地这个栏目就会显示。

远程:就是监控的远程主机

由于本地和远程展示的监控界面都是相同的,这里直接介绍远程,远程监控回了,本地监控自然而然也会了。


注意,一个主机如果希望支持远程监控,需要在启动时添加以下参数:

-Dcom.sun.management.jmxremote.port=1099

-Dcom.sun.management.jmxremote.authenticate=false

-Dcom.sun.management.jmxremote.ssl=false

此外,-Dcom.sun.management.jmxremote  JDK5时,需要指定这个参数,开启JMX管理功能,JDK6之后,JMX管理默认开启,不需要指定


之后,右击"远程"-->"添加远程主机",出现界面

Image.png

在连接后面添加一个1099,这是远程主机jmx监听的端口号,点击确定,侧边栏变为:

Image.png

点击红色框中的jmx连接,出现以下界面

Image.png

jvisualvm分为四个选项卡:概述、监视、线程、抽样器,下面我们一一介绍:

“概述 ”选项卡:

   默认显示的就是概述选项卡,其中的信息相当于我们调用了jinfo命令获得,其还包含了两个子选项卡:

     jvm参数栏:相当于我们调用jinfo -flags <pid>获得

     系统属性栏:相当于我们调用jinfo -sysprops <pid>获得

“监视”选项卡:

    主要显示了cpu、内存使用、类加载信息、线程信息等,这只是一个概要性的介绍,如下图:

QQ截图20170214224710.png

右上角的"堆dump"会在远程主机上,dump一个内存映射文件,之所以不直接dump到本地,主要是因为这个文件通常比较大,直接dump到本地会很慢。

Image.png

dump完成之后,可以手工下载这个文件,通过"文件"->"装入"来进行分析,不过我们一般还是使用mat来进行分析,不会使用这个功能。

“线程”选项卡:

Image.png

线程选项卡列出了所有线程的信息,并使用了不同的颜色标记,右下角的颜色表示了不同的状态。

右上角的线程dump会直接把线程信息dump到本地,相当于调用了jstack命令,如:

Image.png

“抽样器 ”选项卡:

QQ截图20170214230451.png

主要有"cpu"和"内存"两个按钮,读者可以分别点击一下,看一下显示效果。


网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册