34

我是 jstat 工具的新手。因此,我做了一个如下示例。

./jstat -gcutil -t 4001 5000
Timestamp         S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT
       565088.4   0.00   0.89  75.86  40.59  84.80    405    3.822     4    0.549    4.371
       565093.4   0.00   0.89  77.81  40.59  84.80    405    3.822     4    0.549    4.371
       565098.4   0.00   0.89  77.81  40.59  84.80    405    3.822     4    0.549    4.371
       565103.5   0.00   0.89  77.85  40.59  84.80    405    3.822     4    0.549    4.371
       565108.5   0.00   0.89  77.85  40.59  84.80    405    3.822     4    0.549    4.371
       565113.4   0.00   0.89  77.85  40.59  84.80    405    3.822     4    0.549    4.371


jstat -gc output

 S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT
704.0  704.0   0.4    0.0    6080.0   4013.8   14928.0     6335.2   21248.0 18019.6    436    3.957   4      0.549    4.506
704.0  704.0   0.4    0.0    6080.0   4016.6   14928.0     6335.2   21248.0 18019.6    436    3.957   4      0.549    4.506
704.0  704.0   0.4    0.0    6080.0   4135.4   14928.0     6335.2   21248.0 18019.6    436    3.957   4      0.549    4.506
704.0  704.0   0.4    0.0    6080.0   4135.4   14928.0     6335.2   21248.0 18019.6    436    3.957   4      0.549    4.506
704.0  704.0   0.4    0.0    6080.0   4135.4   14928.0     6335.2   21248.0 18019.6    436    3.957   4      0.549    4.506
704.0  704.0   0.4    0.0    6080.0   4135.4   14928.0     6335.2   21248.0 18019.6    436    3.957   4      0.549    4.506

这个结果说明了什么?哪些是要寻找可能的内存问题的列,例如内存泄漏等。

4

3 回答 3

31

gcutil 以百分比利用率提供统计信息

-gcutil Option
Summary of Garbage Collection Statistics 
Column  Description
S0      Survivor space 0 utilization as a percentage of the space's current capacity.
S1      Survivor space 1 utilization as a percentage of the space's current capacity.
E       Eden space utilization as a percentage of the space's current capacity.
O       Old space utilization as a percentage of the space's current capacity.
P       Permanent space utilization as a percentage of the space's current capacity.
YGC     Number of young generation GC events.
YGCT    Young generation garbage collection time.
FGC     Number of full GC events.
FGCT    Full garbage collection time.
GCT     Total garbage collection time.

gc 根据分配的空间和使用的空间提供统计信息。

-gc Option
Garbage-collected heap statistics 
Column  Description
S0C     Current survivor space 0 capacity (KB).
S1C     Current survivor space 1 capacity (KB).
S0U     Survivor space 0 utilization (KB).
S1U     Survivor space 1 utilization (KB).
EC      Current eden space capacity (KB).
EU      Eden space utilization (KB).
OC      Current old space capacity (KB).
OU      Old space utilization (KB).
PC      Current permanent space capacity (KB).
PU      Permanent space utilization (KB).
YGC     Number of young generation GC Events.
YGCT    Young generation garbage collection time.
FGC     Number of full GC events.
FGCT    Full garbage collection time.
GCT     Total garbage collection time.

来源:文档

于 2014-01-16T05:52:03.983 回答
30

请参阅文档:

https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html

基本上一排是一个时间点。这些列显示了有关 JVM 内存区域(Survivor、Eden、...)的数据,如果不知道 JVM 是如何工作的,就不可能理解它们。

例如在年轻代中的 JVM 垃圾收集一文中有一些解释。

以下是 JVM 对象生成工作原理的摘录

Eden是创建新对象的地方。当 Eden 满时,small GC运行 a:如果一个对象没有引用它,则将其删除,否则将存活,并移动到Survivor空间(一次只有一个幸存者空间在使用,所有对象从另一个空间被复制到那里)。

如果一个对象在一定次数的来回复制中幸存下来,它就会被移动到Old空间中。如果Old空间满了,Full GC就会运行a,这会影响JVM中的所有对象,所以它的操作要重得多。

此外,还有Permanent存储“元数据”(类描述符、字段、方法、...描述符)的空间。

于 2013-01-22T18:00:36.560 回答
20

使用这个简单的在线 jstat 可视化工具来绘制 jstat GC 统计信息。

于 2015-01-02T22:16:26.483 回答