jstat命令查看jvm内存情况及GC内存变化

命令格式


jstat [Options] pid [interval] [count]


参数说明:
Options,选项,一般使用 -gc、-gccapacity查看gc情况
pid,VM的进程号,即当前运行的java进程号
interval,间隔时间(按该时间频率自动刷新当前内存情况),单位毫秒
count,打印次数,如果缺省则打印无数次

示例

查看当前jvm内存情况

jstat -gc 12675

说明

1.内容单位=KB

2.既能看到JVM内存各区域分配空间 (如S0C、S1C、EC、OC)

3.也能看到JVM内存各区域内存已使用空间 (如S0U、S1U、EU、OU)

4.能看到应用启动期间GC次数及时间 YGC、FGC

结果的参数说明
显示内容说明如下(部分结果是通过其他其他参数显示的,暂不说明):
         S0C:年轻代中第一个survivor(幸存区)的容量 (KB) 
         S1C:年轻代中第二个survivor(幸存区)的容量 (KB) 
         S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (KB) 
         S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (KB) 
         EC:年轻代中Eden(伊甸园)的容量 (KB) 
         EU:年轻代中Eden(伊甸园)目前已使用空间 (KB) 
         OC:Old代的容量 (KB) 
         OU:Old代目前已使用空间 (KB) 
         MC:元数据区的容量 (KB) 
         MU:元数据区目前已使用空间 (KB) 
         YGC:从应用程序启动到采样时年轻代中gc次数 
         YGCT:从应用程序启动到采样时年轻代中gc所用时间(s) 
         FGC:从应用程序启动到采样时old代(全gc)gc次数 
         FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s) 
         GCT:从应用程序启动到采样时gc用的总时间(s) 
         NGCMN:年轻代(young)中初始化(最小)的大小 (字节) 
         NGCMX:年轻代(young)的最大容量 (字节) 
         NGC:年轻代(young)中当前的容量 (字节) 
         OGCMN:old代中初始化(最小)的大小 (字节) 
         OGCMX:old代的最大容量 (字节) 
         OGC:old代当前新生成的容量 (字节) 
         S0:年轻代中第一个survivor(幸存区)已使用的占当前容量百分比 
         S1:年轻代中第二个survivor(幸存区)已使用的占当前容量百分比 
         E:年轻代中Eden(伊甸园)已使用的占当前容量百分比 
         O:old代已使用的占当前容量百分比 
         S0CMX:年轻代中第一个survivor(幸存区)的最大容量 (字节) 
         S1CMX :年轻代中第二个survivor(幸存区)的最大容量 (字节) 
         ECMX:年轻代中Eden(伊甸园)的最大容量 (字节) 
         DSS:当前需要survivor(幸存区)的容量 (字节)(Eden区已满) 
         TT: 持有次数限制 
         MTT : 最大持有次数限制 

实时查看内存使用情况及GC时内存变化(每5s刷新一次)

stat -gc 12675 5000

 图片说明

        通过观察图片中的标识部分,可以看到代表在发生YGC,其实这个频率是非常高了,导致这个问题的原因是JVM分配的内存才300多M,比较小,所以YGC的频率已经高达2分钟内就发生一次

猜你喜欢

转载自blog.csdn.net/m0_37298500/article/details/130400099