|
| 1 | +## JVM自带命令jstat命令 ## |
| 2 | +Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于Java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用。 |
| 3 | + |
| 4 | +jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。 |
| 5 | + |
| 6 | +参考格式如下:jstat -options |
| 7 | + |
| 8 | +可以列出当前JVM版本支持的选项,常见的有 |
| 9 | + |
| 10 | + class (类加载器) |
| 11 | + compiler (JIT) |
| 12 | + gc (GC堆状态) |
| 13 | + gccapacity (各区大小) |
| 14 | + gccause (最近一次GC统计和原因) |
| 15 | + gcnew (新区统计) |
| 16 | + gcnewcapacity (新区大小) |
| 17 | + gcold (老区统计) |
| 18 | + gcoldcapacity (老区大小) |
| 19 | + gcpermcapacity (永久区大小) |
| 20 | + gcutil (GC统计汇总) |
| 21 | + printcompilation (HotSpot编译统计) |
| 22 | + |
| 23 | +### 1、jstat –class<pid> : 显示加载class的数量,及所占空间等信息。 ### |
| 24 | + |
| 25 | + |
| 26 | + 显示列名 具体描述 |
| 27 | + Loaded 装载的类的数量 |
| 28 | + Bytes 装载类所占用的字节数 |
| 29 | + Unloaded 卸载类的数量 |
| 30 | + Bytes 卸载类的字节数 |
| 31 | + Time 装载和卸载类所花费的时间 |
| 32 | + |
| 33 | +### 2、jstat -compiler <pid>显示VM实时编译的数量等信息。 ### |
| 34 | + |
| 35 | + |
| 36 | + 显示列名 具体描述 |
| 37 | + Compiled 编译任务执行数量 |
| 38 | + Failed 编译任务执行失败数量 |
| 39 | + Invalid 编译任务执行失效数量 |
| 40 | + Time 编译任务消耗时间 |
| 41 | + FailedType 最后一个编译失败任务的类型 |
| 42 | + FailedMethod 最后一个编译失败任务所在的类及方法 |
| 43 | + |
| 44 | +### 3、jstat -gc <pid>: 可以显示gc的信息,查看gc的次数,及时间。 ### |
| 45 | + |
| 46 | + 显示列名 具体描述 |
| 47 | + S0C 年轻代中第一个survivor(幸存区)的容量 (字节) |
| 48 | + S1C 年轻代中第二个survivor(幸存区)的容量 (字节) |
| 49 | + S0U 年轻代中第一个survivor(幸存区)目前已使用空间 (字节) |
| 50 | + S1U 年轻代中第二个survivor(幸存区)目前已使用空间 (字节) |
| 51 | + EC 年轻代中Eden(伊甸园)的容量 (字节) |
| 52 | + EU 年轻代中Eden(伊甸园)目前已使用空间 (字节) |
| 53 | + OC Old代的容量 (字节) |
| 54 | + OU Old代目前已使用空间 (字节) |
| 55 | + PC Perm(持久代)的容量 (字节) |
| 56 | + PU Perm(持久代)目前已使用空间 (字节) |
| 57 | + YGC 从应用程序启动到采样时年轻代中gc次数 |
| 58 | + YGCT 从应用程序启动到采样时年轻代中gc所用时间(s) |
| 59 | + FGC 从应用程序启动到采样时old代(全gc)gc次数 |
| 60 | + FGCT 从应用程序启动到采样时old代(全gc)gc所用时间(s) |
| 61 | + GCT 从应用程序启动到采样时gc用的总时间(s) |
| 62 | + |
| 63 | +### 4、jstat -gccapacity <pid>:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小 ### |
| 64 | + |
| 65 | + 显示列名 具体描述 |
| 66 | + NGCMN 年轻代(young)中初始化(最小)的大小(字节) |
| 67 | + NGCMX 年轻代(young)的最大容量 (字节) |
| 68 | + NGC 年轻代(young)中当前的容量 (字节) |
| 69 | + S0C 年轻代中第一个survivor(幸存区)的容量 (字节) |
| 70 | + S1C 年轻代中第二个survivor(幸存区)的容量 (字节) |
| 71 | + EC 年轻代中Eden(伊甸园)的容量 (字节) |
| 72 | + OGCMN old代中初始化(最小)的大小 (字节) |
| 73 | + OGCMX old代的最大容量(字节) |
| 74 | + OGC old代当前新生成的容量 (字节) |
| 75 | + OC Old代的容量 (字节) |
| 76 | + PGCMN perm代中初始化(最小)的大小 (字节) |
| 77 | + PGCMX perm代的最大容量 (字节) |
| 78 | + PGC perm代当前新生成的容量 (字节) |
| 79 | + PC Perm(持久代)的容量 (字节) |
| 80 | + YGC 从应用程序启动到采样时年轻代中gc次数 |
| 81 | + FGC 从应用程序启动到采样时old代(全gc)gc次数 |
| 82 | + |
| 83 | +### 5、jstat -gcutil <pid>:统计gc信息 ### |
| 84 | + |
| 85 | + |
| 86 | + |
| 87 | +### 6、jstat -gcnew <pid>:年轻代对象的信息。 ### |
| 88 | + |
| 89 | + |
| 90 | + |
| 91 | +### 7、jstat -gcnewcapacity<pid>: 年轻代对象的信息及其占用量。 ### |
| 92 | + |
| 93 | + |
| 94 | + |
| 95 | +### 8、jstat -gcold <pid>:old代对象的信息。 ### |
| 96 | + |
| 97 | + |
| 98 | + |
| 99 | +### 9、stat -gcoldcapacity <pid>: old代对象的信息及其占用量。 ### |
| 100 | + |
| 101 | + |
| 102 | + |
| 103 | +### 10、jstat -gcpermcapacity<pid>: perm对象的信息及其占用量。 ### |
| 104 | + |
| 105 | + |
| 106 | + |
| 107 | +### 11、jstat -printcompilation <pid>:当前VM执行的信息。 ### |
| 108 | + |
| 109 | + |
0 commit comments