jstat -gc -t 37856 1000 5 表示对jvm进程Id为37856的进程,每个1秒统计一次gc信息,统计5次结束
jstat -gc 命令用于显示Java HotSpot VM中堆内存的垃圾收集统计信息。以下是 jstat -gc 命令输出的各项详细说明:
S0C (Current survivor space 0 capacity)
描述:年轻代中第一个Survivor(幸存区)的当前容量(以KB为单位)。
数值:显示当前Survivor 0区的容量大小。
S1C (Current survivor space 1 capacity)
描述:年轻代中第二个Survivor(幸存区)的当前容量(以KB为单位)。
数值:显示当前Survivor 1区的容量大小。
S0U (Survivor space 0 utilization)
描述:年轻代中第一个Survivor(幸存区)目前已使用的空间(以KB为单位)。
数值:显示Survivor 0区当前已使用的空间大小。
S1U (Survivor space 1 utilization)
描述:年轻代中第二个Survivor(幸存区)目前已使用的空间(以KB为单位)。
数值:显示Survivor 1区当前已使用的空间大小。
EC (Current Eden space capacity)
描述:年轻代中Eden区的当前容量(以KB为单位)。
数值:显示Eden区的容量大小。
EU (Eden space utilization)
描述:年轻代中Eden区目前已使用的空间(以KB为单位)。
数值:显示Eden区当前已使用的空间大小。
OC (Current old space capacity)
描述:老年代的当前容量(以KB为单位)。
数值:显示老年代的容量大小。
OU (Old space utilization)
描述:老年代目前已使用的空间(以KB为单位)。
数值:显示老年代当前已使用的空间大小。
MC (Metaspace capacity)
描述:元空间(Java 8起)的当前容量(以KB为单位)。
数值:显示元空间的容量大小(注意:在Java 8之前,这会是PermGen空间的容量)。
MU (Metaspace utilization)
描述:元空间目前已使用的空间(以KB为单位)。
数值:显示元空间当前已使用的空间大小。
CCSC (Compressed class space capacity)
描述:压缩类空间的当前容量(以KB为单位,仅在使用Compressed Class Pointers时)。
数值:显示压缩类空间的容量大小(如果存在的话)。
CCSU (Compressed class space utilization)
描述:压缩类空间目前已使用的空间(以KB为单位,仅在使用Compressed Class Pointers时)。
数值:显示压缩类空间当前已使用的空间大小(如果存在的话)。
YGC (Number of young generation GC events)
描述:从应用程序启动到采样时年轻代中GC的次数。
数值:显示年轻代GC的次数。
YGCT (Young generation garbage collection time)
描述:从应用程序启动到采样时年轻代中GC所用的时间(以秒为单位)。
数值:显示年轻代GC所用的总时间。
FGC (Number of full GC events)
描述:从应用程序启动到采样时老年代(全GC)GC的次数。
数值:显示全GC的次数。
FGCT (Full garbage collection time)
描述:从应用程序启动到采样时老年代(全GC)GC所用的时间(以秒为单位)。
数值:显示全GC所用的总时间。
GCT (Total garbage collection time)
描述:从应用程序启动到采样时GC用的总时间(以秒为单位)。
数值:显示GC所用的总时间。
这些输出项为分析和优化Java应用程序的内存使用和垃圾收集行为提供了有用的信息。通过监控这些值,你可以更好地理解Java应用程序的内存使用情况,并据此做出调整。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
jstat -gcutil 命令是 Java 虚拟机(JVM)的一个监控工具,用于显示垃圾收集(GC)相关的统计信息,特别是与堆内存使用情况相关的信息。当你运行 jstat -gcutil pid 命令时,它会针对指定的 Java 进程 ID(pid)输出一系列列表,这些列表展示了在不同时间点上 JVM 的垃圾收集情况。
输出的每一列通常包含以下信息(注意,具体的列和顺序可能会根据 JVM 的版本和配置有所不同,但以下是最常见的列):
S0(Survivor Space 0 Utilization):这是第一个幸存区(Survivor Space)的使用率百分比。JVM 的堆内存被分为新生代(Young Generation)和老年代(Old Generation),新生代又被细分为一个或多个 Eden 区和两个幸存区(Survivor Spaces,通常称为 S0 和 S1 或 From 和 To)。在 GC 过程中,Eden 区的存活对象会被移动到 S0 或 S1 区,两个幸存区会互换角色。
S1(Survivor Space 1 Utilization):这是第二个幸存区的使用率百分比,与 S0 类似,但代表另一个幸存区。
E(Eden Space Utilization):这是 Eden 区的使用率百分比。Eden 区是新生代中用于分配新对象的主要区域。
O(Old Generation Utilization):这是老年代的使用率百分比。老年代用于存放经过多次 GC 后仍然存活的对象。
M(Metaspace Utilization):在某些 JVM 版本中,这一列可能显示为 MS 或 Metaspace,代表元空间(Metaspace)的使用率百分比。元空间用于存储类的元数据,如类的结构信息、运行时常量池、字段和方法数据、构造函数和普通方法的字节码内容等。在 Java 8 及更高版本中,元空间取代了永久代(PermGen space)。
CCS(Compressed Class Space Utilization):这是压缩类空间的使用率百分比,仅在某些 JVM 配置和版本中可见。压缩类空间是元空间的一部分,专门用于存储类的元数据,以提高内存使用效率。
YGC(Young Generation GC Count):自 JVM 启动以来,新生代垃圾收集发生的次数。
YGCT(Young Generation GC Time):新生代垃圾收集所花费的总时间(以秒为单位)。
FGC(Full GC Count):自 JVM 启动以来,完全垃圾收集(即包括新生代和老年代在内的整个堆的收集)发生的次数。注意,在某些 JVM 实现中,这可能被称为 “GC”(因为整个堆都被收集),但在 jstat 输出中,它通常被明确标记为 “FGC”。
FGCT(Full GC Time):完全垃圾收集所花费的总时间(以秒为单位)。
GCT(Total GC Time):自 JVM 启动以来,所有垃圾收集活动所花费的总时间(以秒为单位),即 YGCT 和 FGCT 的总和。
请注意,如果你看到的列与上述不完全一致,那可能是因为你的 JVM 版本或配置有所不同。此外,某些列(如 CCS)可能不会在所有 JVM 配置中都出现。