JVM(04):常见的内存分析工具使用
1、JConsole
JConsole(Java Monitoring and Management Console)是一个基于JMX的可视化监视、管理工具。它管理部分的功能是针对JMX MBean进行管理,由于MBean可以使用代码、中间件服务器的管理控制台或者所有符合JMX规范的软件进行访问。
1.1、JConsole启动
JConsole是jdk bin目下下的指令,可以在bin目录下直接运行JConsole.exe打开。可以在本地进程中选择一个进程进行监控,也可以选择连接远程服务器上的进程。
1.2、本地进程界面如下
1.3、监控模块
监控主要分为以下6个模块
- 概览:显示内存、线程、CPU等信息。
- 内存:动态显示内存信息
- 线程:显示线程信息
- 类:显示JVM加载、和卸载的类信息
- VM概要:显示JVM相关信息,包括堆内存使用、线程、JVM参数、操作系统等信息。
2、VisualVM
多合一的JVM监控工具,是目前为止功能最丰富的监控工具。可支持插件安装扩展。
2.1、VisualVM启动
同样是jdk提供的功能,直接运行bin目录下的jvisualvm.exe即可。
2.2、功能说明
- 显示虚拟机进程以及进程的配置、环境信息(jps、jinfo)。
- 监视应用程序的CPU、GC、堆、方法区(1.7及以前),元空间(JDK1.8及以后)以及线程的信息(jstat、jstack)。
- dump以及分析堆转储快照(jmap、jhat)。
- 方法级的程序运行性能分析,找出被调用最多、运行时间最长的方法。
- 离线程序快照:收集程序的运行时配置、线程dump、内存dump等信息建立一个快照
2.3、VisualVM兼容性统计