查看jvm gc情况

    早上收到运维保障,apache进程数过高,达到100多个,远远高于其他几台的httpd进程。经过查看,发现存在大量400状态的访问,以为是这个问题,经过研究排除。向同事求助,同事得出结论,应用启动以后,内存迅速被吃光。tomcat响应较慢,从而导致了apache进程数的升高。然后迅速查看应用中的问题,解决。
    同事给了个查看jvm gc的工具,以前还没怎么用过,看来还是经验不足,呵呵。下面介绍下jstat的用法。
     jstat是一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。

语法结构如下:

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 — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)

关于统计结果的分析,还需要好好研究下。

猜你喜欢

转载自suvfat.iteye.com/blog/1674001