内存溢出分析命令

查看堆使用情况:jconsole

查看启动信息,堆内存分配:ps -ef|grep java;类似:jps

查询服务器内存:free -h

查看进程内存占用情况:top

查找某文件数据并统计条数:grep Full  gc-201901242032.log | wc -l

查询进程id:jps

分析线程信息:jstack -l 20063 > 1.txt

查询对象数量及大小:jmap -histo 31993 > sk.txt

展示pid的整体堆信息:jmap -heap pid

编辑器打开:vim sk.txt

在某文件下查找某字符:/x

:q!

jmap可以做什么?

1、jmap -histo[:live] <pid>

通过histo选项,打印当前java堆中各个对象的数量、大小;如果添加了live,只会打印活跃的对象。

统计实例最多的类,前十位:

jmap -histo pid | sort -n -r -k 2 | head -10

统计合计容量前十的类:

jmap -histo pid | sort -n -r -k 3 | head -10 

-n 使用纯数字,进行排序;-r 反向排序;-k 以哪个区间field来进行排序。

2、jmap -dump:[live,]format=b,file=<filename> <pid>

通过-dump选项,把java堆中的对象dump到本地文件,然后使用MAT进行分析。

如果添加了live,只会dump活跃的对象。

3、jmap -heap <pid> > 1.txt

通过-heap选项,打印java堆的配置情况和使用情况,还有使用的GC算法。

猜你喜欢

转载自blog.csdn.net/C18298182575/article/details/87365605
今日推荐