1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-07-28 12:22:17 +08:00

[docs update]JDK监控和故障处理工具新增MAT(Memory Analyzer Tool)

This commit is contained in:
Guide 2024-04-19 15:23:16 +08:00
parent f852aaf6e1
commit 8a8348b087
2 changed files with 21 additions and 7 deletions

View File

@ -829,6 +829,7 @@ maxmemory-policy noeviction
- 《Redis 开发与运维》
- 《Redis 设计与实现》
- 《Redis 核心原理与实战》
- Redis 命令手册:<https://www.redis.com.cn/commands.html>
- RedisSearch 终极使用指南,你值得拥有!:<https://mp.weixin.qq.com/s/FA4XVAXJksTOHUXMsayy2g>
- WHY Redis choose single thread (vs multi threads): [https://medium.com/@jychen7/sharing-redis-single-thread-vs-multi-threads-5870bd44d153](https://medium.com/@jychen7/sharing-redis-single-thread-vs-multi-threads-5870bd44d153)

View File

@ -13,7 +13,7 @@ tag:
- **`jstat`**JVM Statistics Monitoring Tool: 用于收集 HotSpot 虚拟机各方面的运行数据;
- **`jinfo`** (Configuration Info for Java) : Configuration Info for Java,显示虚拟机配置信息;
- **`jmap`** (Memory Map for Java) : 生成堆转储快照;
- **`jhat`** (JVM Heap Dump Browser) : 用于分析 heapdump 文件,它会建立一个 HTTP/HTML 服务器,让用户可以在浏览器上查看分析结果;
- **`jhat`** (JVM Heap Dump Browser) : 用于分析 heapdump 文件,它会建立一个 HTTP/HTML 服务器,让用户可以在浏览器上查看分析结果。JDK9 移除了 jhat
- **`jstack`** (Stack Trace for Java) : 生成虚拟机当前时刻的线程快照,线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合。
### `jps`:查看所有 Java 进程
@ -133,6 +133,8 @@ Server is ready.
访问 <http://localhost:7000/>
注意⚠JDK9 移除了 jhat[JEP 241: Remove the jhat Tool](https://openjdk.org/jeps/241)),你可以使用其替代品 Eclipse Memory Analyzer Tool (MAT) 和 VisualVM这也是官方所推荐的。
### **`jstack`** :生成虚拟机当前时刻的线程快照
`jstack`Stack Trace for Java命令用于生成虚拟机当前时刻的线程快照。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合.
@ -297,16 +299,27 @@ VisualVM 提供在 Java 虚拟机 (Java Virtual Machine, JVM) 上运行的 Java
VisualVM 基于 NetBeans 平台开发因此他一开始就具备了插件扩展功能的特性通过插件扩展支持VisualVM 可以做到:
- **显示虚拟机进程以及进程的配置、环境信息jps、jinfo**
- **监视应用程序的 CPU、GC、堆、方法区以及线程的信息jstat、jstack**
- **dump 以及分析堆转储快照jmap、jhat**
- **方法级的程序运行性能分析,找到被调用最多、运行时间最长的方法。**
- **离线程序快照:收集程序的运行时配置、线程 dump、内存 dump 等信息建立一个快照,可以将快照发送开发者处进行 Bug 反馈。**
- **其他 plugins 的无限的可能性……**
- 显示虚拟机进程以及进程的配置、环境信息jps、jinfo
- 监视应用程序的 CPU、GC、堆、方法区以及线程的信息jstat、jstack
- dump 以及分析堆转储快照jmap、jhat
- 方法级的程序运行性能分析,找到被调用最多、运行时间最长的方法。
- 离线程序快照:收集程序的运行时配置、线程 dump、内存 dump 等信息建立一个快照,可以将快照发送开发者处进行 Bug 反馈。
- 其他 plugins 的无限的可能性……
这里就不具体介绍 VisualVM 的使用,如果想了解的话可以看:
- <https://visualvm.github.io/documentation.html>
- <https://www.ibm.com/developerworks/cn/java/j-lo-visualvm/index.html>
### MAT内存分析器工具
MATMemory Analyzer Tool是一款快速便捷且功能强大丰富的 JVM 堆内存离线分析工具。其通过展现 JVM 异常时所记录的运行时堆转储快照Heap dump状态正常运行时也可以做堆转储分析帮助定位内存泄漏问题或优化大内存消耗逻辑。
在遇到 OOM 和 GC 问题的时候,我一般会首选使用 MAT 分析 dump 文件在,这也是该工具应用最多的一个场景。
关于 MAT 的详细介绍推荐下面这两篇文章,写的很不错:
- [JVM 内存分析工具 MAT 的深度讲解与实践—入门篇](https://juejin.cn/post/6908665391136899079)
- [JVM 内存分析工具 MAT 的深度讲解与实践—进阶篇](https://juejin.cn/post/6911624328472133646)
<!-- @include: @article-footer.snippet.md -->