Skip to content

Commit 70ad5a2

Browse files
committed
JVM自带命令jstat命令
1 parent 4b3ee4b commit 70ad5a2

File tree

1 file changed

+109
-0
lines changed

1 file changed

+109
-0
lines changed

Java_Jstat/README.md

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
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+
![](https://github.com/scalad/Note/blob/master/Java_Jstat/image/5.png)
86+
87+
### 6、jstat -gcnew <pid>:年轻代对象的信息。 ###
88+
89+
![](https://github.com/scalad/Note/blob/master/Java_Jstat/image/6.png)
90+
91+
### 7、jstat -gcnewcapacity<pid>: 年轻代对象的信息及其占用量。 ###
92+
93+
![](https://github.com/scalad/Note/blob/master/Java_Jstat/image/7.png)
94+
95+
### 8、jstat -gcold <pid>:old代对象的信息。 ###
96+
97+
![](https://github.com/scalad/Note/blob/master/Java_Jstat/image/8.png)
98+
99+
### 9、stat -gcoldcapacity <pid>: old代对象的信息及其占用量。 ###
100+
101+
![](https://github.com/scalad/Note/blob/master/Java_Jstat/image/9.png)
102+
103+
### 10、jstat -gcpermcapacity<pid>: perm对象的信息及其占用量。 ###
104+
105+
![](https://github.com/scalad/Note/blob/master/Java_Jstat/image/10.png)
106+
107+
### 11、jstat -printcompilation <pid>:当前VM执行的信息。 ###
108+
109+
![](https://github.com/scalad/Note/blob/master/Java_Jstat/image/11.png)

0 commit comments

Comments
 (0)