一、今天在查看服务器时候,发现内存使用率直接就到99%了,
二、用ps -uaxw查看一下,每个占用内存较多的进程情况:
三,挑出可疑的进程,生成dump文件:
jmap -dump:format=b,file=jmap.hprof pid
四、导入到MAT中进行分析
MAT本地安装的工具,JDK版本1.8以上版本,
五、对dump文件的分析
主要看内存泄漏可疑点的问题,查看引用的类,需要开发配合调优(毕竟开发对自己写的函数类都比较熟悉),一般如果是loaded by <system class loader>都没得问题,作为测试如何对dump文件进行分析呢,可以采用对比法,就是截取两个时间段的dump文件(内存有增长变化的),通过对比分析两个文件的对象,通过对比后的结果可以很方便定位内存泄露,MAT同时打开两个堆转储文件,分别打开Histogram,通过如下图,进行dump文件的对比: