• 如何监控 Java 垃圾回收机制: jps、jstack、jmap、jhat、jstat


    一、MinorGC

    一个新对象会被放到eden空间,当eden空间满了的时候,MinorGC就会执行,任何存活的对象,都从eden空间复制到to survivor空间,任何在from survivor空间里面的存活对象也会被复制到to survivor。

    MinorGC结束的时候,eden空间和“from survivor空间都是空的,to survivor空间里面存储存活的对象,然后,在下次MinorGC的时候,两个survivor空间交换他们的标签,现在是空的from survivor标记成

    为to,to survivor标记为from。因此,在MinorGC结束的时候,eden空间是空的,两个survivor空间中的一个是空的。

    在MinorGC过程,如果to survivor空间不够大,不能够存储所有的从eden空间和from suvivor空间复制过来活动对象,溢出的对象会被复制到old代。溢出迁移到old代,会导致old代的空间快速增长,

    会导致stop-the-world压缩垃圾回收。

    1.jstat -gc 10098

    S0C       S1C       S0U       S1U EC            EU         OC          OU         MC         MU         CCSC    CCSU   YGC YGCT  FGC FGCT   GCT
    56320.0 93184.0 56064.5 0.0   1098240.0 941742.1 479232.0 164843.3 126080.0 122784.3 13952.0 13335.0 28    1.204   4     0.953   2.157


    堆内存 = 年轻代 + 年老代 + 永久代
    年轻代 = Eden区 + 两个Survivor区(From和To)

    jstat -options

    -class
    -compiler
    -gc
    -gccapacity
    -gccause
    -gcmetacapacity
    -gcnew
    -gcnewcapacity
    -gcold
    -gcoldcapacity
    -gcutil
    -printcompilation

    说明 Jstat参数
    S0C 输出Survivor0空间的大小。单位KB。 -gc
    -gccapacity
    -gcnew
    -gcnewcapacity
    S1C 输出Survivor1空间的大小。单位KB。 -gc
    -gccapacity
    -gcnew
    -gcnewcapacity
    S0U 输出Survivor0已用空间的大小。单位KB。 -gc
    -gcnew
    S1U 输出Survivor1已用空间的大小。单位KB。 -gc
    -gcnew
    EC 输出Eden空间的大小。单位KB。 -gc
    -gccapacity
    -gcnew
    -gcnewcapacity
    EU 输出Eden已用空间的大小。单位KB。 -gc
    -gcnew
    OC 输出老年代空间的大小。单位KB。 -gc
    -gccapacity
    -gcold
    -gcoldcapacity
    OU 输出老年代已用空间的大小。单位KB。 -gc
    -gcold
    PC 输出持久代空间的大小。单位KB。 -gc
    -gccapacity
    -gcold
    -gcoldcapacity
    -gcpermcapacity
    PU 输出持久代已用空间的大小。单位KB。 -gc
    -gcold
    YGC 新生代空间GC时间发生的次数。 -gc
    -gccapacity
    -gcnew
    -gcnewcapacity
    -gcold
    -gcoldcapacity
    -gcpermcapacity
    -gcutil
    -gccause
    YGCT 新生代GC处理花费的时间。 -gc
    -gcnew
    -gcutil
    -gccause
    FGC full GC发生的次数。 -gc
    -gccapacity
    -gcnew
    -gcnewcapacity
    -gcold
    -gcoldcapacity
    -gcpermcapacity
    -gcutil
    -gccause
    FGCT full GC操作花费的时间 -gc
    -gcold
    -gcoldcapacity
    -gcpermcapacity
    -gcutil
    -gccause
    GCT GC操作花费的总时间。 -gc
    -gcold
    -gcoldcapacity
    -gcpermcapacity
    -gcutil
    -gccause
    NGCMN 新生代最小空间容量,单位KB。 -gccapacity
    -gcnewcapacity
    NGCMX 新生代最大空间容量,单位KB。 -gccapacity
    -gcnewcapacity
    NGC 新生代当前空间容量,单位KB。 -gccapacity
    -gcnewcapacity
    OGCMN 老年代最小空间容量,单位KB。 -gccapacity
    -gcoldcapacity
    OGCMX 老年代最大空间容量,单位KB。 -gccapacity
    -gcoldcapacity
    OGC 老年代当前空间容量制,单位KB。 -gccapacity
    -gcoldcapacity
    PGCMN 持久代最小空间容量,单位KB。 -gccapacity
    -gcpermcapacity
    PGCMX 持久代最大空间容量,单位KB。 -gccapacity
    -gcpermcapacity
    PGC 持久代当前空间容量,单位KB。 -gccapacity
    -gcpermcapacity
    PC 持久代当前空间大小,单位KB -gccapacity
    -gcpermcapacity
    PU 持久代当前已用空间大小,单位KB -gc
    -gcold
    LGCC 最后一次GC发生的原因 -gccause
    GCC 当前GC发生的原因 -gccause
    TT 老年化阈值。被移动到老年代之前,在新生代空存活的次数。 -gcnew
    MTT 最大老年化阈值。被移动到老年代之前,在新生代空存活的次数。 -gcnew
    DSS 幸存者区所需空间大小,单位KB。 -gcnew

    参考:

    JVM详解 

  • 相关阅读:
    CentOS75 安装 telnet 进行使用.
    Windows 创建计划任务 实现自动同步文件.
    qemu-img.exe 工具 简介
    中建项目环境迁移说明
    服务器内存最大大小限制
    bzip2 以及 tar 压缩/解压缩/.打包等工具软件
    Ubuntu18.04 安装后的简单实用设置[未完成]
    oracle 启动监听报错TNS-12547: TNS:lost contact
    Linux审计sudo
    OPENVAS运行
  • 原文地址:https://www.cnblogs.com/yuyutianxia/p/7747453.html
Copyright © 2020-2023  润新知