jstat:虚拟机统计信息监视工具

 

jstat(JVM Statistics Monitoring Tool)

  jstat是用于监视虚拟机各种运行状态信息的命令行工具。

它可以显示本地或者远程虚拟机进程中的类装载,内存,垃圾收集,JIT编译等运行数据,在没有GUI图形界面,只提供纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选工具

  Jstat命令格式为

  jstat [ option vmid [interval[s|ms] [count] ] ]

  对于命令格式中的VMID与LVMID需要特别说明一下:如果是本地虚拟机进程,VMID和LVMID是一致的,如果是远程虚拟机进程,那VMID的格式应当是

  [protocol:] [//] lvmid[@hostname [:port]/servername ]

  参数interval和count代表查询间隔和次数,如果省略这两个参数,说明只查询一次,

  假设需要每250毫秒查询一次进程 2764 垃圾收集情况 ,一共查询20次 那么命令格式应该是:

  jstat -gc 2764 250 20

  选项option代表着用户希望查询的虚拟机信息,主要分为三类,类装载,垃圾收集,运行期编译状况

 

  一些常见的option

-class 监视类装载,卸载数量,总空间以及类装载所耗费的时间
-gc 监视Java堆状况,包括Eden区,两个survivor,老年代,永久代等的容量,已用空间,GC时间合计等信息
-gccapacity 监视内容与-gc基本相同,但输出主要关注的是Java堆各个区域使用到最大,最小空间
-gcutil 监视内容与-gc基本相同,但输出主要关注的是已使用空间占总空间的百分比
-gccause 与-gcutil功能一样,但是会额外输出导致上一次GC产生的原因
-gcnew 监视新生代GC状况
-gcnewcapacity 监视内容与-gcnew基本相同,输出主要关注使用到的最大,最小空间
-gcold 监视老年代GC状况
-gcoldcapacity 监视内容与-gcold基本相同,输出主要关注使用到的最大,最小空间
-gcpermcapacity 输出永久代使用的最大,最小空间
-compiler 输出JIT编译器编译过的方法,耗时等信息
-printcompilation 输出已经被JIT编译的方法

 

 

同样我们还是可以通过 jstat -help 来查看 jstat提供的那些操作,以及如何使用

 

下面来一个例子

S0    ->    Survior0

S1    ->    Survior1

E    ->    Eden

O    ->    Old

P    ->    Permanent

YGC

FGC

and    T

所以如果在没有GUI的情况下,我们看一通过jstat 来查看虚拟机的运行状况,然后通过运行状态来检测系统运行的状态。

posted @ 2017-08-27 11:57  白白胖胖的空格  阅读(149)  评论(0编辑  收藏  举报