查看堆使用情况: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算法。