[性能测试]:内存泄漏以及MAT(Memory Analyzer Tool)工具使用分析

时间:2023-03-09 04:08:38
[性能测试]:内存泄漏以及MAT(Memory Analyzer Tool)工具使用分析

一、今天在查看服务器时候,发现内存使用率直接就到99%了,

[性能测试]:内存泄漏以及MAT(Memory Analyzer Tool)工具使用分析

二、用ps -uaxw查看一下,每个占用内存较多的进程情况:

[性能测试]:内存泄漏以及MAT(Memory Analyzer Tool)工具使用分析

三,挑出可疑的进程,生成dump文件:

jmap -dump:format=b,file=jmap.hprof pid

四、导入到MAT中进行分析

MAT本地安装的工具,JDK版本1.8以上版本,

[性能测试]:内存泄漏以及MAT(Memory Analyzer Tool)工具使用分析

五、对dump文件的分析

主要看内存泄漏可疑点的问题,查看引用的类,需要开发配合调优(毕竟开发对自己写的函数类都比较熟悉),一般如果是loaded by <system class loader>都没得问题,作为测试如何对dump文件进行分析呢,可以采用对比法,就是截取两个时间段的dump文件(内存有增长变化的),通过对比分析两个文件的对象,通过对比后的结果可以很方便定位内存泄露,MAT同时打开两个堆转储文件,分别打开Histogram,通过如下图,进行dump文件的对比:

[性能测试]:内存泄漏以及MAT(Memory Analyzer Tool)工具使用分析