jstat是一个可以用于观察java应用程序运行时相关信息的工具,功能非常强大,可以通过它查看堆信息的详细情况。
jstat命令的基本使用语法如下:
jstat -option [-t] [-h] pid [interval] [count]
下面命令输出pid为2500这个进程的ClassLoader相关信息,每秒统计一次信息,一共输出两次。
Loaded表示载入的类的数量,第一个Bytes表示载入的类的合计大小,Unloaded表示卸载的类数量,第二个Bytes表示卸载的类的合计大小,Time表示加载和卸载类花的总的时间。
下面的命令查看JIT编译的信息:
Compiled表示编译任务执行的次数,Failed表示编译失败的次数,Invalid表示编译不可用的次数,Time表示编译的总耗时,FailedType表示最后一次编译的类型,FailedMethod表示最后一次编译失败的类名和方法名。
下面的命令显示与gc相关的堆信息的输出:
下面的命令显示了各个代的信息,与-gc相比,它不仅输出了各个代的当前大小,还输出了各个代的最大值与最小值:
* NGCMN:新生代最小值(KB)
* NGCMX:新生代最大值(KB)
* NGC:当前新生代大小(KB)
* OGCMN:老年大最小值(KB)
* OGCMX:老年代最大值(KB)
* OGC:当前老年代大小(KB)
* PGCMN:永久代最小值(KB)
* PGCMX:永久代最大值(KB)
下面命令显示最近一次gc的原因,以及当前gc的原因:
下面的命令显示新生代的详细信息:
* TT:新生代对象晋升到老年代对象的年龄。
* MTT:新生代对象晋升到老年代对象的年龄的最大值。
* DSS:所需的Survivor区的大小。
下面的命令详细输出了新生代各个区的大小信息:
* S0CMX:s0区的最大值(KB)
* S1CMX:s1区的最大值(KB)
* ECMX:eden区的最大值(KB)
下面的命令显示老年代gc概况:
下面的命令用于显示老年代的容量信息:
下面的命令用于显示永久区的使用情况:
原文地址:http://blog.csdn.net/winwill2012/article/details/46319355