日期:2014-05-16  浏览次数:20342 次

jstat应用

用以判断JVM是否存在内存问题呢?如何判断JVM垃圾回收是否正常?一般的top指令基本上满足不了这样的需求,因为它主要监控的是总体的系统资源,很难定位到java应用程序。

Jstat 是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用。由于JVM内存设置较大,图中百分比变化不太明显

一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。

jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。

执行:cd $JAVA_HOME/bin中执行jstat,注意jstat后一定要跟参数。


语法结构:

Usage: jstat -help|-options

???????jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

?参数解释:

Options — 选项,我们一般使用 -gcutil 查看gc情况

vmid????— VM的进程号,即当前运行的java进程号

interval– 间隔时间,单位为秒或者毫秒

count???— 打印次数,如果缺省则打印无数次

?

S0??— Heap上的 Survivor space 0 区已使用空间的百分比
S1??— Heap上的 Survivor space 1 区已使用空间的百分比
E???— Heap上的 Eden space 区已使用空间的百分比
O???— Heap上的 Old space 区已使用空间的百分比
P???— Perm space 区已使用空间的百分比
YGC — 从应用程序启动到采样时发生 Young GC 的次数
YGCT– 从应用程序启动到采样时 Young GC 所用的时间(单位秒)
FGC — 从应用程序启动到采样时发生 Full GC 的次数
FGCT– 从应用程序启动到采样时 Full GC 所用的时间(单位秒)
GCT — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)

实例使用1:

[root@localhost bin]# jstat -gcutil?25444

??S0?????S1?????E??????O??????P?????YGC?????YGCT????FGC????FGCT?????GCT