可视化性能监控工具VisualVM

    VisualVM是一个功能强大的免费的可视化性能监控工具,它的功能基本上包含了JDK提供的其他的工具。除此之外,它还可以支持插件的拓展。下面介绍一下其使用。
启动
    当jvisualvm命令在系统的PATH中时,在命令行中执行jvisualvm便可以启动工具。如下所示:

连接进程
本地进程
    从上面的图可以看出,jvisualvm启动时就展示出了可以监控的本地进程。双击进程子树,就可以进入监控页面。
远程进程
    VisualVM也支持远程JMX连接。不过此时,远程的Java应用程序需要在JVM启动参数中,添加以下内容:
-Djava.rmi.server.hostname=127.0.0.1
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9999    #VisualVM连接端口
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
    一般情况下,我们不会直接在线上环境开启上述参数。一般用于测试环境的性能调优,所以没有增加认证。在开启端口后,需要在Server端开启响应端口(内网情况下,可以直接关掉防火墙)。
    添加过程如下:

    如果没有配置认证信息的话,只需要IP和端口号即可。如下图所示:

面板功能
概况
    第一个TAB是概况信息,可以看到进程ID,主类、启动参数等。如下图所示:

监视

    它展示了应用程序CPU、堆、永久区、类加载器和线程数的总体情况。可以通过右上角的“执行垃圾回收”、“堆Dump”,可以分别对JVM执行Full GC和Dump当前的堆快照信息。如下图所示:


线程
    线程这一栏展示了当前进程的所有线程运行情况,点击右上角的“线程Dump”便可以对当前系统线程做一个快照,这个相当于执行jstack命令。如下图所示:


抽样器
    VisualVM有2个采样器,CPU采样器和内存采样器。

    CPU采样器可以将CPU的占用时间定位到方法。可以看到当前占用CPU比较多的方法是什么,和线程占用CPU时间的情况。


    内存采样器可以看到当前线程的堆对象占用情况,和每个线程单独占用的情况。


扫描二维码关注公众号,回复: 2135894 查看本文章


链接:http://moguhu.com/article/detail?articleId=59

猜你喜欢

转载自blog.csdn.net/wuxian90/article/details/81007850