论坛首页 Java企业应用论坛

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

浏览 7432 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (3) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-07-19  
如何查看JVM中内存使用情况如何? JVM垃圾回收是否正常?
一般在Linux系统top命令是无法满足我们需求的.

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

在JDK的安装目录中: "Java\jdk1.6.0_10\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:
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参数,则会一直输出打印.

还没写完,待续....
   发表时间:2012-07-20  
hpjianhua 写道
如何查看JVM中内存使用情况如何? JVM垃圾回收是否正常?
一般在Linux系统top命令是无法满足我们需求的.

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

在JDK的安装目录中: "Java\jdk1.6.0_10\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:
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参数,则会一直输出打印.

还没写完,待续....

0 请登录后投票
   发表时间:2012-07-20  
楼上的简直是在侮辱邓丽君!
0 请登录后投票
   发表时间:2012-07-22  
我是iteye新手   我这样做的目的只是为了熟悉iteye的一些基本操作   你说我在侮辱邓丽君  我到不觉得   可能你觉得我不应该用邓丽君的肖像    也罢我换个
0 请登录后投票
   发表时间:2012-08-06  
我也喜欢邓丽君,fans一名!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics