JVM调优命令——jmap

JVM调优最重要的是通过分析dump文件。dump文件有两种,一种是heap dump文件,另一种是thread dump文件。heap dump文件是某一时刻JVM堆存储的快照,是一种镜像文件,用来记录某一时刻内存信息,包括内存的占用,使用率以及GC方式等。而thread dump是记录某一时刻cpu信息,主要是线程的执行情况等,例如某一时刻线程执行到哪个类的哪个方法上了。heap dump文件是需要利用命令jhat去分析的,而thread dump是文本文件,可以直接查看。

拿到heap dump文件的方式有两种。一种是给JVM设置启动参数 XX:+HeapDumpOnOutOfMemoryError,这样JVM在出现OOM的时候会自动生成heap dump文件。而另一种就是使用jmap命令了。这里主要总结一下jmap命令的用法。

jmap命令不仅可以用来生成heap dump文件,还可以用来直接查询finalize执行队列,堆内存的使用率以及GC方式等。

jmap命令格式为:   jmap [option]

option为参数,参数不同,功能也不同。option主要有:

1.heap      显示java堆详细信息。

2.histo      显示堆中对象的统计信息。

3.permstat      堆中永久代中类的统计信息,由于JDK1.8之后取消的永久代,所以该参数在之后的JDK版本中无效。

4.finalizerinfo      显示finalize队列的执行情况。

5.dump      生成堆存储快照,即heap dump文件。

6.F      当 -dump参数没有响应时,强制生成dump快照。

主要用法示例:

猜你喜欢

转载自blog.csdn.net/unbelievevc/article/details/132634254