JVisualVM是jdk中提供的可视化内存调试工具,在jdk安装目录的bin目录中。

1.监控本地进程
启动JVisualVM之后,左侧列出本地全部java进程。右侧是详细信息。
- 概述,java进程的基本信息,默认参数。
-
监控面板,包含CPU、内存、类、线程,4个主要方面。
- 堆Dump
显示概要信息,jinfo功能一样。生成hprof文件在“基本信息”第二行。

显示线程信息,和jstack功能一样。

类加载信息,和Mat的功能

2.打开dump文件
选择文件,指定文件格式。

选择要查看的内存对象,双击对象进入详细信息。

查看对象层级引用。

3.监控线程
监控本地进程的线程,对理解框架非常有帮助,可以看到都有哪些进程,以及这些进程的工作状态。dump进程状态和jstack的结果一样,也可以分析出线程死锁。

4.VisualGC 动态显示GC过程
显示页面中,动态查看s0,s1,GC情况。

Visual GC是可选插件,在菜单栏工具->插件标签页,打开插件管理工具。
5.监控远程JVM
修改Catalina.sh,添加参数。
JAVA_OPTS="-Djava.rmi.server.hostname=192.168.1.30 -Dcom.sun.management.jmxremote.port=8099 -Dcom.sun.management.jm xremote.rmi.port=8099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

新建远程连接,再创建jmx连接。两种类型监控消息,jmx和jstatd。jmx不支持VisualGC,jstatd不支持CPU。

参看资料
visualvm中文参考指南 https://visualvm.github.io/documentation.html
网友评论