JVisualVM可视化JVM调试工具
2018-12-20 本文已影响100人
ac619467fef3
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