巧用JDK自带工具Jstat查看Gc垃圾回收之使用方法

如何查看JVM中内存使用情况如何? JVM垃圾回收是否正常?
一般在Linux系统top命令是无法满足我们需求的.

下面是如何巧用JDK自带工具Jstat来完成这些任务~

在JDK的安装目录中: "Java\jdk1.6.0_10\bin" 找到jstat工具:

jstat 的语法结构:

Usage: jstat -help|-options

jstat -

参数解释:

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:
D:\Program Files\Java\jdk1.6.0_10\bin>jstat -gcutil 7020 1000 5
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 100.00 69.21 60.22 99.69 279 0.552 11 1.117 1.669
0.00 100.00 70.24 60.22 99.69 279 0.552 11 1.117 1.669
0.00 100.00 71.26 60.22 99.69 279 0.552 11 1.117 1.669
0.00 100.00 71.26 60.22 99.69 279 0.552 11 1.117 1.669
0.00 100.00 72.29 60.22 99.70 279 0.552 11 1.117 1.669

以上实例是在Windows系统下测试的,当时只开了Resin服务器,没访问应用下的情况;

7020 是Java的进程PID, 1000是每隔1秒打印一次,一共打印5次.如果无没传5参数,则会一直输出打印.

  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓