IBM HeapAnalyzer 初体验

今天假模假式的做了一次java oom分析,由于项目使用websphere内存溢出后会产生heapdump、javacore文件,因此使用IBM的HeapAnalyzer尝试分析了一下,再次记录使用方法。

1.启动程序

由于heapdump文件都比较大,因此启动时最好修改参数,我使用的win64位系统、jdk7,因此应对起来还比较容易,如果使用win32位系统的同学要注意了,可能你永远打不开这工具了。

-java -jar -Xms2000m jar包地址         

2.分析

感觉其中最有用的东西就是treemap这个视图了,里面记录了相关类的资源说明,根据readme文件所属,其title是:

TotalSize(TotalSize/HeapSize%)[ObjectSize] NumberOfChildObject(Number of root objects) Name Address

即:资源总大小、与堆内存占比、对象大小、子类个数、内存地址

初次使用一头雾水,于是猜测着点击了

subpoena leak suspect 其中列出了内存占比的大小,

suspect by category 感觉是列出了怀疑溢出的可靠性,因此我选择了最可疑的溢出位置,开始查找,一层一层向下找,中间尽是一些看得懂,看不懂的类,眼花缭乱,层出不穷,最后找到了一个非常熟悉的类,SpringUtil

根据个人经验,应该是spring加载类文件的时候过多造成的,但愿是吧。

至此,这是本人的第一次oom分析过程,初次使用此类工具感觉比较痛苦,个人功底也不是很扎实,但总算找到一些问题,也算小有成果。

希望想要使用此工具的同学多谢耐心,根据实际情况和分析结果共同定位问题。

你可能感兴趣的:(heap)