Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用。由于JVM内存设置较大,图中百分比变化不太明显
一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。
jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。
?
1. jstat -gc pid
可以显示gc的信息,查看gc的次数,及时间。
其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。
2.jstat -gccapacity pid
??????????? 可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,
??????????? 如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,
??????????? PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。
??????????? 其他的可以根据这个类推, OC是old内纯的占用量。
3.jstat -gcutil pid
??????????? 统计gc信息统计。
4.jstat -gcnew pid
?????????? 年轻代对象的信息。
5.jstat -gcnewcapacity pid
?????????? 年轻代对象的信息及其占用量。
6.jstat -gcold pid
????????? old代对象的信息。
7.stat -gcoldcapacity pid
????????? old代对象的信息及其占用量。
8.jstat -gcpermcapacity pid
????????? perm对象的信息及其占用量。
9.jstat -class pid
????????? 显示加载class的数量,及所占空间等信息。
10.jstat -compiler pid
????????? 显示VM实时编译的数量等信息。
11.stat -printcompilation pid
????????? 当前VM执行的信息。
??????? 一些术语的中文解释:
???????? S0C:年轻代中第一个survivor(幸存区)的容量 (字节)
???????? S1C:年轻代中第二个survivor(幸存区)的容量 (字节)
???????? S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
???????? S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
?????????? EC:年轻代中Eden(伊甸园)的容量 (字节)
?????????? EU:年轻代中Eden(伊甸园)目前已使用空间 (字节)
?????????? OC:Old代的容量 (字节)
?????????? OU:Old代目前已使用空间 (字节)
?????????? PC:Perm(持久代)的容量 (字节)
?????????? PU:Perm(持久代)目前已使用空间 (字节)
???????? 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代当前新生成的容量 (字节)
?? PGCMN:perm代中初始化(最小)的大小 (字节)
?? PGCMX:perm代的最大容量 (字节)??
?????? PGC:perm代当前新生成的容量 (字节)
????????? S0:年轻代中第一个survivor(幸存区)已使用的占当前容量百分比
???????? S1:年轻代中第二个survivor(幸存区)已使用的占当前容量百分比
?????????? E:年轻代中Eden(伊甸园)已使用的占当前容量百分比
?????????? O:old代已使用的占当前容量百分比
?????????? P:perm代已使用的占当前容量百分比
? S0CMX:年轻代中第一个survivor(幸存区)的最大容量 (字节)
?S1CMX :年轻代中第二个survivor(幸存区)的最大容量 (字节)
??? ECMX:年轻代中Eden(伊甸园)的最大容量 (字节)
?????? DSS:当前需要survivor(幸存区)的容量 (字节)(Eden区已满)
????????? TT: 持有次数限制
?????? MTT : 最大持有次数限制
?
?
ps -ef | grep java
例:pid : 10000
jstat -gcpermcapacity 10000 1000
?
转:
http://www.2cto.com/kf/201109/105988.html
http://xueliang880107.iteye.com/blog/954073
?
?