jstat

作用

jstat全称JVM Statistics Monitoring Tool,用于监控JVM的各种运行状态。
TIPS
此命令是实验性的,不受支持。
参考文档:

Definitions:

  1. option取值如下:
  2. - class:显示类加载器的统计信息
  3. - compiler:显示有关Java HotSpot VM即时编译器行为的统计信息
  4. - gc:显示有关垃圾收集堆行为的统计信息
  5. - gccapacity:统计各个分代(新生代,老年代,持久代)的容量情况
  6. - gccause:显示引起垃圾收集事件的原因
  7. - gcnew:显示有关新生代行为的统计信息
  8. - gcnewcapacity:显示新生代容量
  9. - gcold:显示老年代、元空间区的统计信息
  10. - gcoldcapacity:显示老年代的容量
  11. - gcmetacapacity:显示元空间的容量
  12. - gcutil:显示有关垃圾收集统计信息的摘要
  13. - printcompilation:显示Java HotSpot VM编译方法统计信息
  14. <a name="N8JIM"></a>
  15. ## 输出信息
  16. - class
  17. - Loaded:当前加载的类的数量
  18. - Bytes:当前加载的空间(单位KB)
  19. - Unloaded:卸载的类的数量Number of classes unloaded.
  20. - Bytes:当前卸载的空间(单位KB)
  21. - Time:执行类加载/卸载操作所花费的时间
  22. - compiler
  23. - Compiled:执行了多少次编译任务
  24. - Failed:多少次编译任务执行失败
  25. - Invalid:无效的编译任务数
  26. - Time:执行编译任务所花费的时间
  27. - FailedType:上次失败的编译的编译类型
  28. - FailedMethod:上次失败的编译的类名和方法
  29. - gc
  30. - S0C:第一个存活区(S0)的容量(KB
  31. - S1C:第二个存活区(S1)的容量(KB
  32. - S0U:第一个存活区(S0)使用的大小(KB
  33. - S1U:第二个存活区(S1)使用的大小(KB
  34. - EC:伊甸园空间容量(KB
  35. - EU:伊甸园使用的大小(KB
  36. - OC:老年代容量(KB
  37. - OU:老年代使用的大小(KB
  38. - MC:元空间的大小(KB
  39. - MU:元空间使用的大小(KB
  40. - CCSC:压缩的类空间大小(KB
  41. - CCSU:压缩类空间使用的大小(KB
  42. - YGC:年轻代垃圾收集事件的数量
  43. - YGCT:年轻代垃圾回收时间
  44. - FGCFull GC事件的数量
  45. - FGCTFull GC回收时间
  46. - GCT:垃圾收集总时间
  47. - gccapacity
  48. - NGCMN:最小新生代容量(KB
  49. - NGCMX:最大新生代容量(KB
  50. - NGC:当前的新生代容量(KB
  51. - S0C:第一个存活区(S0)的当前容量(KB
  52. - S1C:第二个存活区(S1)的当前容量(KB
  53. - EC:当前伊甸园容量(KB
  54. - OGCMN:最小老年代容量(KB
  55. - OGCMX:最大老年代容量(KB
  56. - OGC:当前老年代容量(KB
  57. - OC:当前old space容量(KB
  58. - MCMN:最小元空间容量(KB
  59. - MCMX:最大元空间容量(KB
  60. - MC:当前元空间的容量(KB
  61. - CCSMN:压缩的类空间最小容量(KB
  62. - CCSMX:压缩的类空间最大容量(KB
  63. - CCSC:当前压缩的类空间大小(KB
  64. - YGC:年轻代GC事件的数量
  65. - FGCFull GC事件的数量
  66. - gccause:其他展示列和-gcutil一致
  67. - LGCC:导致GC的原因
  68. - GCC:导致当前GC的原因
  69. - gcnew
  70. - S0C:第一个存活区(S0)的容量(KB
  71. - S1C:第二个存活区(S1)的容量(KB
  72. - S0U:第一个存活区(S0)的利用率(KB
  73. - S1U:第二个存活区(S1)的利用率(KB
  74. - TT:老年代阈值
  75. - MTT:最大老年代阈值
  76. - DSS:期望的存活区大小(KB
  77. - EC:当前伊甸园容量(KB
  78. - EU:伊甸园利用率(KB
  79. - YGC:年轻代GC事件的数量
  80. - YGCT:年轻代垃圾回收时间
  81. - gcnewcapacity
  82. - NGCMN:最小年轻代容量(KBNGCMX:最大年轻代容量(KBNGC:当前年轻代容量(KBS0CMX:最大S0容量(KBS0C:当前S0容量(KBS1CMX:最大S1容量(KBS1C:当前S1容量(KBECMX:最大伊甸园容量(KBEC:当前伊甸园容量(KBYGC:年轻代GC事件的数量FGCFull GC事件的数量
  83. - gcold
  84. - MC:当前元空间使用大小(KB
  85. - MU:元空间利用率(KB
  86. - CCSC:压缩的类的大小(KB
  87. - CCSU:使用的压缩类空间(KB
  88. - OC:当前的老年代空间容量(KB
  89. - OU:来年代空间利用率(KB
  90. - YGC:年轻代GC事件的数量
  91. - FGCFull GC事件的数量
  92. - FGCTFull GC垃圾收集时间
  93. - GCT:总垃圾收集时间
  94. - gcoldcapacity
  95. - OGCMN:最小老年代容量(KB
  96. - OGCMX:最大老年代容量(KB
  97. - OGC:当前老年代容量(KB
  98. - OC:当前old space容量(KB
  99. - YGC:年轻代GC事件的数量
  100. - FGCFull GC事件的数量
  101. - FGCTFull GC垃圾收集时间
  102. - GCT:总垃圾收集时间
  103. - gcmetacapacity
  104. - MCMN:最小元空间容量(KB
  105. - MCMX:最大元空间容量(KB
  106. - MC:元空间大小(KB
  107. - CCSMN:压缩的类空间最小容量(KB
  108. - CCSMX:压缩的类空间最大容量(KB
  109. - YGC:年轻代GC事件的数量
  110. - FGCFull GC事件的数量
  111. - FGCTFull GC垃圾收集时间
  112. - GCT:总垃圾收集时间
  113. - gcutil
  114. - S0:第一个存活区(S0)利用率
  115. - S1:第二个存活区(S1)利用率
  116. - EEden空间利用率
  117. - O:老年代空间利用率
  118. - M:元空间利用率
  119. - CCS:压缩的类空间利用率
  120. - YGC:年轻代GC事件的数量
  121. - YGCT:年轻代垃圾回收时间
  122. - FGCFull GC事件的数量
  123. - FGCTFull GC垃圾收集时间
  124. - GCT:总垃圾收集时间
  125. - printcompilation
  126. - Compiled:由最近编译的方法去执行的编译任务数
  127. - Size:最近编译的方法的字节码的字节数
  128. - Type:最近编译的方法的编译类型。
  129. - Method:标识最近编译的方法的类名和方法名。类名使用 / 代替点 . 作为名称空间分隔符;方法名称是指定类中的方法。这两个字段的格式与HotSpot -XX:+PrintCompilation 选项一致。
  130. <a name="jU1Wm"></a>
  131. ## 使用示例
  132. 示例1:查看21891这个进程的gc相关信息,每隔250ms采样1次,采样7
  133. ```shell
  134. jstat -gcutil 21891 250 7

示例2:显示有关新生代行为的统计信息,重复列标题:

  1. jstat -gcnew -h3 21891 250

示例3:查看remote.domain机器上的40496这个进程有关垃圾收集统计信息的摘要,每隔1秒采样1次:

  1. jstat -gcutil 40496@remote.domain 1000