【问题标题】:How to read the output of "jstat -gcutil <PID>?"如何读取“jstat -gcutil <PID>”的输出?
【发布时间】:2017-10-29 10:38:15
【问题描述】:

我正在运行 JBoss 服务器,以下输出属于 -gcutil 工具。我很好奇这个缩写是什么。

/usr/java/jdk1.7.0_25/bin/jstat  -gcutil 47929 
  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   
  0.00   0.00  68.46 100.00  57.08  44539 5829.704 303497 241552.104 247381.808

谢谢

【问题讨论】:

    标签: java memory garbage-collection heap-memory jstat


    【解决方案1】:

    S0 = 幸存者空间 0 利用率占空间当前容量的百分比。

    S1 = 幸存者空间 1 利用率占空间当前容量的百分比。

    E = 伊甸园空间利用率占空间当前容量的百分比。

    O = 旧空间利用率占空间当前容量的百分比。

    P = 永久空间利用率占空间当前容量的百分比。

    YGC = 年轻代 GC 事件的数量。

    YGCT = 年轻代垃圾回收时间。

    FGC = 完全 GC 事件的数量。

    FGCT = 完整的垃圾回收时间。

    GCT = 总垃圾回收时间。

    参考https://docs.oracle.com/javase/7/docs/technotes/tools/share/jstat.html#gcutil_option的文档

    另外你也可以参考http://www.cs.lafayette.edu/docs/java/tooldocs/share/jstat.html

    【讨论】:

      【解决方案2】:

      稍微扩展@nurselcuk 的回答:内存分为堆空间(分配对象)和永久空间P(存储类的字节码。堆空间进一步划分分为年轻代Y和终身/老年代O。年轻代由伊甸园空间E和两个幸存者空间S0 和 S1

      对象被分配到伊甸园空间。当 eden 空间用完时,垃圾收集器将活动对象移入幸存者空间并释放 eden 空间。

      当幸存者空间用完时,垃圾收集器通常会在幸存者空间内移动活动对象。似乎幸存者空间 0 和 1 再次像复制收集器一样工作,其中对象仅分配到一个空间,而另一个保持空闲。当前空间已满时,所有活动对象都被移动到空闲空间,两个空间交换角色。如果一个对象被收集了一定次数,它就会被移动到永久空间。

      Tenured 空间也是由标记和清除算法收集的垃圾。

      【讨论】:

        猜你喜欢
        • 2022-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-26
        相关资源
        最近更新 更多