JVisualVM监控–JVM问题场景分析调优
1.线程死锁
方法:JvisualVM会自动触发生成threaddump文件
2.堆内存泄露、溢出
1.在catalina.sh配置堆溢出文件,直接分析这个堆文件

2.利用内存分析工具(Memory Analyzer Tool,MAT)分析java项目内存泄露
监控系统发现项目内存使用率每天都会增加一点,如下图。对于一个稳定运行的java项目而言,出现这
种情况一般都有可能是出现了内存泄露。

加载后首页如下图,在首页上比较有用的是Histogram和Leak Suspects
Histogram
Shallow Size
Shallow Size是对象本身占据的内存的大小,不包含其引用的对象。对于常规对象(非数组)的Shallow
Size由其成员变量的数量和类型来定,而数组的ShallowSize由数组类型和数组长度来决定,它为数组元
素大小的总和。
Reta
本文介绍了如何使用JVisualVM进行JVM问题分析调优,重点关注线程死锁和堆内存泄露。通过JVisualVM生成threaddump文件检测死锁,配置堆溢出文件并利用MAT工具分析内存泄露。此外,文章讨论了GC机制,包括年轻代、年老代和永久代,并提供了JVM调优的原则和目的,以及常见的性能问题和解决策略。
订阅专栏 解锁全文
7675

被折叠的 条评论
为什么被折叠?



