java jstat
jstat 虚拟机统计信息监视工具:
jstat (JVM Statistics Monitoring Tool) 适用于监视虚拟机各种运行状态信息的命令行工具。
命令格式:
jstat [ option vmid [ interval [s | ms] [ count ] ] ]
如果是本地虚拟机进程VMID 与 LVMID 是一致的, 如果是远程虚拟机进程,那VMID的格式为:
[protocol:] [//] lvmid [@hostname[:port] / servername]
参数interval和count代表查询间隔和次数,如果省略这两个参数,说明只查询一次,假设需要每250毫秒查询一次进程2764垃圾收集状况 ,一共20次 , 则为:
jstat -gc 2764 250 20
jstat执行样例:
[root@egret-game-tjgdtest-ks-bj1 ~]# jstat -gcutil 15468 250 5 S0 S1 E O M CCS YGC YGCT FGC FGCT GCT 99.85 0.00 58.43 8.17 97.99 95.70 4 0.042 1 0.032 0.074 99.85 0.00 58.43 8.17 97.99 95.70 4 0.042 1 0.032 0.074 99.85 0.00 58.43 8.17 97.99 95.70 4 0.042 1 0.032 0.074 99.85 0.00 58.43 8.17 97.99 95.70 4 0.042 1 0.032 0.074 99.85 0.00 58.43 8.17 97.99 95.70 4 0.042 1 0.032 0.074
结果:
字段 | 说明 |
S0、S1 | 表示Survivor0、 Survivor1 使用百分比 |
E | 表示Eden使用百分比 |
O | 表示年老代Old 使用百分比 |
P | 表示Permanent永久代使用百分比 |
YGC | 表示程序运行以来发生的YoungGC 次数 MinorGC |
YGCT | 表示YGC总耗时 ,单位为秒 |
FGC | 表示程序运行以来发生的Full GC |
FGCT | 表示FGC总耗时, 单位为秒 |
GCT | 表示所有GC总耗时, 单位为秒 |
jstat options 主要选项:
选项 | 作用 |
-class | 监视类装载、卸载数量、总空间以及类装载所耗费的时间 |
-gc | 监视JAVA堆状况,包括Eden区、两个Survivor区、老年代、永久代等的容量、已用空间、GC时间合计等信息 |
-gccapacity | 监视内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大、最小空间 |
-gcutil | 监视内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比 |
-gccause | 与-gcutil 功能一样,但是会额外输出导致上一次GC产生的原因 |
-gcnew | 监视新生代GC状况 |
-gcnewcapacity | 监视内容与-gcnew基本相同,输入主要关注使用到的最大、最小空间 |
-gcold | 监视年老代的GC状况 |
-gcoldcapacity | 监视内容与 -gcold基本相同,输出主要关注使用到的最大、最小空间 |
-gcpermacpacity | 输出永久代使用到的最大、最小空间 |
-compiler | 输出JIT编译器编译过的方法、耗时等信息 |
-printcompilation | 输出已经被JIT编译的方法 |