需要查询当前JAVA的PID
windows环境,任务管理器-》菜单-》 查看-》选择列-》勾选PID 既可以在列表中查看
linux环境,终端执行 pgrep -l java ,前面的编号既是PID。
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 — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)
实例:cd Java\jdk1.7.0_17\bin 目录
执行 cmd : jstat -gcutil 7012(PID) 1000(多长时间采样一次ms) 100(采样次数)
C:\Program Files\Java\jdk1.7.0_17\bin>jstat -gcutil 7216 1000 10
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 16.69 75.61 6.29 71.63 19 0.050 0 0.000 0.050
0.00 16.69 75.61 6.29 71.63 19 0.050 0 0.000 0.050
0.00 16.69 75.61 6.29 71.63 19 0.050 0 0.000 0.050
0.00 16.69 75.61 6.29 71.63 19 0.050 0 0.000 0.050
0.00 16.69 75.61 6.29 71.63 19 0.050 0 0.000 0.050
0.00 16.69 75.61 6.29 71.63 19 0.050 0 0.000 0.050
0.00 16.69 75.61 6.29 71.63 19 0.050 0 0.000 0.050
0.00 16.69 75.61 6.29 71.63 19 0.050 0 0.000 0.050
0.00 16.69 75.61 6.29 71.63 19 0.050 0 0.000 0.050
0.00 16.69 75.61 6.29 71.63 19 0.050 0 0.000 0.050