当前位置: 首页 > 知识库问答 >
问题:

解释jstat结果

微生青青
2023-03-14

我不熟悉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

这个结果表明了什么?哪些列需要注意可能的内存问题,例如内存泄漏等。

共有3个答案

徐佐
2023-03-14

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

隗嘉歆
2023-03-14

请参阅文档:

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

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

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

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

伊甸园是一个创建新对象的地方。当伊甸园满了,一个小GC运行:如果一个对象没有引用它,它将被删除,否则它将存活,并移动到幸存者空间(一次只使用一个幸存者空间,其他空间中的所有对象都复制到那里)。

如果一个对象在一定次数的来回复制后仍然存在,它将被移动到旧的空间。如果旧空间已满,则会运行full GC,这会影响JVM中的所有对象,因此操作要繁重得多。

此外,还有永久空间,其中存储了“元数据”(类描述符、字段、方法等描述符)。

严峰
2023-03-14

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.

资料来源:Docs

 类似资料:
  • 问题内容: 我是jstat工具的新手。因此,我做了如下示例。 结果表明什么?哪些列需要注意可能的内存问题,例如内存泄漏等。 问题答案: 请参阅文档: https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html 基本上,一行是一个时间点。这些列显示了有关JVM内存区域(Survivor,Eden等)的数据,如果不了解JV

  • jStat 是一个 JavaScript 的统计库,用来执行高级的统计功能而无需一些专用的语言,例如 MATLAB 。

  • 我有以下来自weka项目的结果,我在理解它们的含义方面有一些问题。weka结果我知道正确分类实例的百分比通常称为准确性或样本准确性,但我不明白这意味着什么以及它向我展示了什么。我可以从中获得什么信息?正确分类的实例和不正确的实例是什么?同样在混淆矩阵上,我知道四个数字的总和是我给程序的数据的数量,但为什么在这样的网格中有四个数字。您可以提供的任何信息都会很有帮助,谢谢。

  • 我在swing中有一个Gui应用程序,可以在串行热敏打印机上打印票据。当我按下启动此操作的按钮时,我的GUI被冻结。我想那是因为代码是在EDT上执行的。我确实使用了jstack,但我不理解下面的结果: 有人能给我解释一下,我可以看到我的GUI冻结,因为第一个线程"Thread-12"。 第二,“线程6”和“线程7”有什么区别,只要我确定我只运行了一次这个线程。

  • 本文向大家介绍请解释下NaN === NaN的结果相关面试题,主要包含被问及请解释下NaN === NaN的结果时的应答技巧和注意事项,需要的朋友参考一下 N--a--N 就是照镜子都不认识自己的那位.so NaN !== NaN, NaN === Nobody 哈哈 这个解释很完美啊

  • 问题内容: 我有一个Gui应用程序,它可以在串行热敏打印机上打印票证。当我点击启动此操作的按钮时,我的GUI被冻结。我认为这是因为代码是在EDT上执行的。我用jstack来确定,但是我不明白下面的结果: 有人可以告诉我在哪里可以看到我的GUI由于第一个线程“ Thread-12”而被冻结。 其次,只要我确定我只运行过一次该线程,“ Thread-6”和“ Thread-7”之间有什么区别。 问题答