JVM分析
参数
|
|
命令
jinfo(查看/修改虚拟机参数)
jmap命令是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。 打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。 jmap -J-d64 -heap 12105 jmap -heap 19570 -heap 打印heap的概要信息,GC使用的算法,heap(堆)的配置及JVM堆内存的使用情况. jmap -histo 24107 打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀 * 如果live子参数加上后,只统计活的对象数量。 jmap -histo pid>a.log 日志将其保存,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。
|
|
垃圾回收统计:jstat -gc 进程id S0C:第一个幸存区的大小 S1C:第二个幸存区的大小 S0U:第一个幸存区的使用大小 S1U:第二个幸存区的使用大小 EC:伊甸园区的大小 EU:伊甸园区的使用大小 OC:老年代大小 OU:老年代使用大小 MC:方法区大小 MU:方法区使用大小 CCSC:压缩类空间大小 CCSU:压缩类空间使用大小 YGC:年轻代垃圾回收次数 YGCT:年轻代垃圾回收消耗时间 FGC:老年代垃圾回收次数 FGCT:老年代垃圾回收消耗时间 GCT:垃圾回收消耗总时间
堆内存统计:jstat -gccapacity 进程id NGCMN:新生代最小容量 NGCMX:新生代最大容量 NGC:当前新生代容量 S0C:第一个幸存区大小 S1C:第二个幸存区的大小 EC:伊甸园区的大小 OGCMN:老年代最小容量 OGCMX:老年代最大容量 OGC:当前老年代大小 OC:当前老年代大小 MCMN:最小元数据容量 MCMX:最大元数据容量 MC:当前元数据空间大小 CCSMN:最小压缩类空间大小 CCSMX:最大压缩类空间大小 CCSC:当前压缩类空间大小 YGC:年轻代gc次数 FGC:老年代GC次数