Java性能监控与故障处理分析工具(Heap memory和Native memory)
前言
在实际的工作中会不断的遇到各种线上问题,包括但不限于内存溢出、服务响应时间上升、线程block等各种情况,这时候就需要性能监控以及故障处理工具来分析和定位问题,google后发现并没有一篇分类清晰、实用的文章能够概括以上对于工具的需求,因此,决定整理一下相关的内容,以供大家学习参考。
本文意在介绍了有哪些常用的分析工具,以方便大家能够快速的分析定位问题。@空歌白石
文章的整个编写思路可以通过如下思维导图所示:
这里有几点需要说明:
- JDK原生工具特别是
jmc
以及arthas
是在线实时分析工具,mat
是离线分析工具,jProfiler
也可以支持离线和实时分析。 - 以上工具都是很大篇幅是针对堆内内存进行分析,对于堆外内存的问题分析能力十分有限甚至可以说没有。
- 如果如果确定是堆外内存问题,一般堆外内存溢出排查可结合
gperftools
与btrace
排查。