Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用。
jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。参考格式如下:
jstat -options
可以列出当前JVM版本支持的选项,常见的有
l class (类加载器)
l compiler (JIT)
l gc (GC堆状态)
l gccapacity (各区大小)
l gccause (最近一次GC统计和原因)
l gcnew (新区统计)
l gcnewcapacity (新区大小)
l gcold (老区统计)
l gcoldcapacity (老区大小)
l gcpermcapacity (永久区大小)
l gcutil (GC统计汇总)
l printcompilation (HotSpot编译统计)
1、jstat –class<pid> : 显示加载class的数量,及所占空间等信息。
2、jstat -compiler <pid>显示VM实时编译的数量等信息。
3、jstat -gc <pid>: 可以显示gc的信息,查看gc的次数,及时间。
4、jstat -gccapacity <pid>:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小
5、jstat -gcutil <pid>:统计gc信息
6、jstat -gcnew <pid>:年轻代对象的信息。
7、jstat -gcnewcapacity<pid>: 年轻代对象的信息及其占用量。
8、jstat -gcold <pid>:old代对象的信息。
9、stat -gcoldcapacity <pid>: old代对象的信息及其占用量。
10、jstat -gcpermcapacity<pid>: perm对象的信息及其占用量。
11、jstat -printcompilation <pid>:当前VM执行的信息。
参考文献:
http://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jstat.html#class_option
http://nassir.iteye.com/blog/1517484