JVM性能调优工具02-jstat-JVM统计监测工具

释放双眼,带上耳机,听听看~!

[超级链接:JVM性能调优工具学习记录-序章]


本章主要学习JVM统计监测工具jstat。

1.用途

对JVM进行统计监测,统计项主要包括:类加载情况、内存容量及用量、GC次数及时间等。

2.语法


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1Usage: jstat -help|-options
2       jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
3
4Definitions:
5  <option>      An option reported by the -options option
6  <vmid>        Virtual Machine Identifier. A vmid takes the following form:
7                     <lvmid>[@<hostname>[:<port>]]
8                Where <lvmid> is the local vm identifier for the target
9                Java virtual machine, typically a process id; <hostname> is
10                the name of the host running the target Java virtual machine;
11                and <port> is the port number for the rmiregistry on the
12                target host. See the jvmstat documentation for a more complete
13                description of the Virtual Machine Identifier.
14  <lines>       Number of samples between header lines.
15  <interval>    Sampling interval. The following forms are allowed:
16                    <n>["ms"|"s"]
17                Where <n> is an integer and the suffix specifies the units as
18                milliseconds("ms") or seconds("s"). The default units are "ms".
19  <count>       Number of samples to take before terminating.
20  -J<flag>      Pass <flag> directly to the runtime system.
21

2.1.参数说明

  • -options:检测内容,如class、compiler、gc等等。
  • -t:在第一列打印时间戳。
  • -h<lines>:每隔多少行打印一次表头。
  • vmid:JVM的进程id。
  • interval:多次时间打印一次。
  • count:打印多少次。
  • -J<flag>:直接手动设置JVM参数。

2.2.完整示例

为了直观理解各参数,下面给出一个参数齐全的示例。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
1C:\Users\hanchao&gt;jstat -class -t -h5 7484 1000 10
2Timestamp       Loaded  Bytes  Unloaded  Bytes     Time
3         4287.4    880  1717.9        0     0.0       0.36
4         4288.4    880  1717.9        0     0.0       0.36
5         4289.4    880  1717.9        0     0.0       0.36
6         4290.4    880  1717.9        0     0.0       0.36
7         4291.4    880  1717.9        0     0.0       0.36
8Timestamp       Loaded  Bytes  Unloaded  Bytes     Time
9         4292.4    880  1717.9        0     0.0       0.36
10         4293.4    880  1717.9        0     0.0       0.36
11         4294.4    880  1717.9        0     0.0       0.36
12         4295.4    880  1717.9        0     0.0       0.36
13         4296.5    880  1717.9        0     0.0       0.36
14

示例说明:

  • jstat -class:打印类加载和卸载的统计信息。
  • -t:第一列打印时间戳。
  • -h5:每5行打印一次表头。
  • 7484:目标进程id。
  • 1000:每1000毫秒打印一次。
  • 10:共打印10次。

2.3.Option说明

  • class:类加载情况。包括:加载类的数量及大小、卸载类的数量及大小以及类加载卸载耗时。


1
2
3
4
1C:\Users\hanchao&gt;jstat -class 10068
2Loaded  Bytes  Unloaded  Bytes     Time
31956  3530.4        0     0.0       0.77
4
  • compiler:即时编译器编译情况。包括:编译次数、失败次数、不合法次数、最后编译失败的类型、最后编译失败的类名和方法名。


1
2
3
4
1C:\Users\hanchao&gt;jstat -compiler 10068
2Compiled Failed Invalid   Time   FailedType FailedMethod
32005      0       0     7.04          0
4
  • gc:GC情况。包括(单位kb):

  • S0C/S1C/S0U/S1U:S0容量/S1容量/S0用量/S1用量

    • EC/EU/OC/OU:Eden容量/Eden用量/Old容量/Old用量

    • MC/MU/CCSC/CCSU:元空间容量/元空间用量/压缩类空间容量/压缩类空间用量

    • YGC/YGCT/FGC/FGCT/GCT:YoungGC次数/YoungGC耗时/FullGC次数/FullGC耗时/GC总耗时


1
2
3
4
1C:\Users\hanchao&gt;jstat -gc 10068
2S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
32048.0 2048.0  0.0   160.0  24064.0  15041.9   36352.0     3609.6   12032.0 11094.6 1536.0 1265.6     33    0.107   3      0.051    0.158
4
  • gccapacity:内存容量情况。包括(单位kb):

  • NGCMN/NGCMX/NGC:新生代容量最小值/新生代容量最大值/新生代容量

    • S0C/S1C/EC:Survivor0容量/Survivor1容量/Eden区容量

    • OGCMN/OGCMX/OGC/OC:老年代容量最小值/老年代容量最大值/老年代容量/老年代容量

    • MCMN/MCMX/MC:元空间容量最小值/元空间容量最大值/元空间容量

    • CCSMN/CCSMX/CCSC:类压缩空间容量最小值/类压缩空间容量最大值/类压缩空间容量

    • YGC/FGC:Young GC次数/Full GC次数。


1
2
3
4
1C:\Users\hanchao&gt;jstat -gccapacity 10068
2NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC       MCMN     MCMX      MC     CCSMN    CCSMX     CCSC    YGC    FGC
343520.0 692224.0  27136.0 1536.0  512.0  24064.0    87552.0  1384448.0    36352.0    36352.0      0.0 1060864.0  12032.0      0.0 1048576.0   1536.0     35     3
4
  • gcutil:整体GC情况。

  • S0/S1/E/O:S0用量百分比/S1用量百分比/新生代用量百分比/老年代用量百分比

    • M/CCS:元空间用量百分比/类压缩用量百分比

    • YGC/YGCT/FGC/FGCT/GCT:YoungGC次数/YoungGC耗时/FullGC次数/FullGC耗时/GC总耗时


1
2
3
4
1C:\Users\hanchao&gt;jstat -gcutil 10068
2S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
312.50   0.00  35.63  10.33  92.22  82.43     40    0.122     3    0.051    0.173
4
  • gccause:与gcutil类似,多了以下两个参数

  • LGCC:最后一次GC产生的原因。

    • GCC:当前正在发生的GC产生的原因。


1
2
3
4
1C:\Users\hanchao&gt;jstat -gccause 10068
2S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT    LGCC                 GCC
312.50   0.00  17.89  10.33  92.22  82.43     40    0.122     3    0.051    0.173 Allocation Failure   No GC
4
  • gcnew:新生代GC情况。

  • TT:Tenuring Threshold,即年老代阈值,新生代经历多少次复制后进入年老代。

    • MTT:最大的TT。

    • DSS:期望存活大小。


1
2
3
4
1C:\Users\hanchao&gt;jstat -gcnew 10068
2S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT
31536.0 1536.0    0.0  192.0 15  15 1536.0  24064.0   1931.1     41    0.123
4
  • gcnewcapacity:新生代容量情况。


1
2
3
4
1C:\Users\hanchao&gt;jstat -gcnewcapacity 10068
2NGCMN      NGCMX       NGC      S0CMX     S0C     S1CMX     S1C       ECMX        EC      YGC   FGC
343520.0   692224.0    27136.0 230400.0   1536.0 230400.0   1536.0   691200.0    24064.0    41     3
4
  • gcold:老年代GC情况。


1
2
3
4
1C:\Users\hanchao&gt;jstat -gcold 10068
2MC       MU      CCSC     CCSU       OC          OU       YGC    FGC    FGCT     GCT
312032.0  11101.2   1536.0   1266.1     36352.0      3769.6     41     3    0.051    0.174
4
  • gcoldcapacity:老年代容量情况。


1
2
3
4
1C:\Users\hanchao&gt;jstat -gcoldcapacity 10068
2OGCMN       OGCMX        OGC         OC       YGC   FGC    FGCT     GCT
387552.0   1384448.0     36352.0     36352.0    41     3    0.051    0.174
4
  • gcmetacapacity:元空间和类压缩空间的容量和GC情况。

  • MCMN/MCMX/MC:元空间容量最小值/元空间容量最大值/元空间容量

    • CCSMN/CCSMX/CCSC:压缩类空间容量最小值/压缩类空间容量最大值/压缩类空间容量


1
2
3
4
1C:\Users\hanchao&gt;jstat -gcmetacapacity 10068
2MCMN       MCMX        MC       CCSMN      CCSMX       CCSC     YGC   FGC    FGCT     GCT
30.0  1060864.0    12032.0        0.0  1048576.0     1536.0    41     3    0.051    0.174
4
  • printcompilation:HotSpot编译方法的统计。包括:编译次数、字节码大小、编译类型和编译类名和方法名。


1
2
3
4
1C:\Users\hanchao&gt;jstat -printcompilation 10068
2Compiled  Size  Type Method
32040    351    1 sun/security/action/GetPropertyAction run
4

3.常用命令示例

以1000毫秒为间隔,打印5此GC统计信息。


1
2
3
4
5
6
7
8
1C:\Users\hanchao&gt;jstat -gcutil 7484 1000 5
2  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
3  0.00   0.00  44.81   0.00  17.20  19.76      0    0.000     0    0.000    0.000
4  0.00   0.00  44.81   0.00  17.20  19.76      0    0.000     0    0.000    0.000
5  0.00   0.00  44.81   0.00  17.20  19.76      0    0.000     0    0.000    0.000
6  0.00   0.00  44.81   0.00  17.20  19.76      0    0.000     0    0.000    0.000
7  0.00   0.00  44.81   0.00  17.20  19.76      0    0.000     0    0.000    0.000
8

以1000毫秒为间隔,打印5此GC统计信息及GC原因。


1
2
3
4
5
6
7
8
1C:\Users\hanchao&gt;jstat -gccause 7484 1000 5
2  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT    LGCC                 GCC
3  0.00   0.00  44.81   0.00  17.20  19.76      0    0.000     0    0.000    0.000 No GC                No GC
4  0.00   0.00  44.81   0.00  17.20  19.76      0    0.000     0    0.000    0.000 No GC                No GC
5  0.00   0.00  44.81   0.00  17.20  19.76      0    0.000     0    0.000    0.000 No GC                No GC
6  0.00   0.00  44.81   0.00  17.20  19.76      0    0.000     0    0.000    0.000 No GC                No GC
7  0.00   0.00  44.81   0.00  17.20  19.76      0    0.000     0    0.000    0.000 No GC                No GC
8

给TA打赏
共{{data.count}}人
人已打赏
安全技术

网站制作需要素材的实用网站

2021-12-21 16:36:11

安全技术

从零搭建自己的SpringBoot后台框架(二十三)

2022-1-12 12:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索