Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8210965

Revamp G1 jstat counter definitions

    Details

    • Type: Enhancement
    • Status: In Progress
    • Priority: P4
    • Resolution: Unresolved
    • Affects Version/s: 12
    • Fix Version/s: None
    • Component/s: hotspot
    • Labels:
    • Subcomponent:
      gc
    • Understanding:
      Fix Understood
    • CPU:
      generic
    • OS:
      generic

      Description

      JDK-8196989 revamps the G1 JMX MXBean definitions. This RFE revamps the corresponding jstat counter definitions.

      The current G1 jstat counters are:

      sun.gc.collector.0 : Incremental (pure young and mixed) collector, corresponds to "G1 Young Generation"
      sun.gc.collector.1 : Full heap STW collector, corresponds to "G1 Old Generation"
      sun.gc.collector.2 : Concurrent cycle STW phases, corresponds to "G1 Concurrent Cycle"

      sun.gc.generation.0 : "young" generation, composed of 3 spaces
      sun.gc.generation.0.space.0 : "eden", corresponds to "G1 Eden Space"
      sun.gc.generation.0.space.1 : "s0", the from survivor space, unused
      sun.gc.generation.0.space.2 : "s1", the to survivor space, corresponds to "G1 Survivor Space"

      sun.gc.generation.1 : "old" generation, composed of 1 space
      sun.gc.generation.space.0 : "space", including old, humongous, and archive regions, corresponds to "G1 Old Gen"

      The new and redefined jstat counters are:

      sun.gc.collector.3 : Pure young collector, corresponds to "G1 Young"
      sun.gc.collector.4 : Mixed collector, corresponds to "G1 Mixed"

      sun.gc.generation.1 : "old" generation, composed of 3 spaces
      sun.gc.generation.space.0 : "space", including only old regions, corresponds to "G1 Old Space"
      sun.gc.generation.space.1 : "humongous", including only humongous regions, corresponds to "G1 Humongous Space"
      sun.gc.generation.space.2 : "archive", including only archive regions, corresponds to "G1 Archive Space"

      Unlike the GarbageCollector and MemoryPool MXBean definitions, all existing counters are active regardless of G1UseLegacyMonitoring. The only behavioral difference is that if G1UseLegacyMonitoring is true, sun.gc.generation.space.0 retains its legacy inclusion of old, humongous, and archive regions. If false, it includes only old regions.

      --------

      The current result of "jcmd GC.heap_info" is, for example:

       garbage-first heap total 17408K, used 6274K [0x00000007e0000000, 0x0000000800000000)
        region size 1024K, 2 young (2048K), 1 survivors (1024K)
       Metaspace used 22223K, capacity 22871K, committed 23088K, reserved 1069056K
        class space used 2575K, capacity 2894K, committed 2944K, reserved 1048576K

      The new result looks like:

       garbage-first heap total 17408K, used 5600K [0x00000007e0000000, 0x0000000800000000)
        region size 1024K, 2 young (2048K), 1 eden (1024K), 1 survivor (1024K), 4 old (4096K), 1 humongous (1024K), 0 archive (0K)
       Metaspace used 20788K, capacity 21365K, committed 21552K, reserved 1069056K
        class space used 2400K, capacity 2645K, committed 2688K, reserved 1048576K

      --------

      By default, all the jstat GC options now include information about pure young and mixed collections, and about humongous and archive regions. Here are the new column headers and their meanings.

      HC sun.gc.generation.space.1.capacity humongous committed size in kb
      HU sun.gc.generation.space.1.used humongous used size in kb
      AC sun.gc.generation.space.2.capacity archive space committed size in kb
      AU sun.gc.generation.space.2.used archive space used size in kb
      PYGC sun.gc.collector.3.invocations pure young collection count
      PYGCT sun.gc.collector.3.time/sun.os.hrt.frequency pure young collection stop-the-world time
      MGC sun.gc.collector.4.invocations mixed collection count
      MGCT sun.gc.collector.4.time/sun.os.hrt.frequency mixed collection stop-the-world time
      H (sun.gc.generation.1.space.1.capacity - sun.gc.generation.1.used)/100 humongous space, percent used
      A (sun.gc.generation.1.space.2.capacity - sun.gc.generation.2.used)/100 archive space, percent used

      Here are old and new sample outputs for the various jstat options. Most of the fields have been widened so that up to 3-digit gigabyte sizes can be accommodated. See the file src/jdk.cmd/share/classes/sun/tools/jstat/resources/jstat_options for details.

      As for the other G1-specific fields, a '-' is written as the field value if the collector in use is not G1.

      In legacy mode, the old space counters include old, humongous and archive regions. In the new mode, old space counters include only old regions. In both modes, humongous and archive region information is correct.

      jstat gc

      S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT CGC CGCT GCT
      S0C S1C S0U S1U EC EU OC OU HC HU AC AU MC MU CCSC CCSU YGC YGCT FGC FGCT CGC CGCT PYGC PYGCT MGC MGCT GCT

      jstat gccapacity

      NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC CGC
      NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC HC AC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC CGC PYGC MGC

      jstat gccause

      S0 S1 E O M CCS YGC YGCT FGC FGCT CGC CGCT GCT LGCC GCC
      S0 S1 E O H A M CCS YGC YGCT FGC FGCT CGC CGCT PYGC PYGCT MGC MGCT GCT LGCC GCC

      jstat gcnew

      S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT
      S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT PYGC PYGCT MGC MGCT

      jstat gcnewcapacity

      NGCMN NGCMX NGC S0CMX S0C S1CMX S1C ECMX EC YGC FGC CGC
      NGCMN NGCMX NGC S0CMX S0C S1CMX S1C ECMX EC YGC FGC CGC PYGC MGC

      jstat gcold

      MC MU CCSC CCSU OC OU YGC FGC FGCT CGC CGCT GCT
      MC MU CCSC CCSU OC OU HC HU AC AU YGC YGCT FGC FGCT CGC CGCT PYGC PYGCT MGC MGCT GCT

      jstat gcoldcapacity

      OGCMN OGCMX OGC OC YGC FGC FGCT CGC CGCT GCT
      OGCMN OGCMX OGC OC HC AC YGC YGCT FGC FGCT CGC CGCT PYGC PYGCT MGC MGCT GCT

      jstat gcmetacapacity

      MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC FGCT CGC CGCT GCT
      MCMN MCMX MC CCSMN CCSMX CCSC YGC YGCT FGC FGCT CGC CGCT PYGC PYGCT MGC MGCT GCT

      jstat gcutil

      S0 S1 E O M CCS YGC YGCT FGC FGCT CGC CGCT GCT
      S0 S1 E O H A M CCS YGC YGCT FGC FGCT CGC CGCT PYGC PYGCT MGC MGCT GCT

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                phh Paul Hohensee
                Reporter:
                phh Paul Hohensee
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated: