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

PLAB sizing during young gc impacts mixed gc negatively

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Unresolved
    • Icon: P4 P4
    • tbd
    • 9
    • hotspot
    • gc

      The amount of data copied to the GCs of different type differs a lot. Hence particularly old gen PLAB sizing is very badly affected by previous sizing during young only GCs.

      E.g. since young only gcs typically do not copy a lot to old gen, the old gen PLAB size will be shrunk continuously.

      In a well tuned system, the number of young only gcs is typically much higher than mixed gcs, so at the beginning of mixed gc the old gen PLAB is very small, affecting performance.

      This is particularly of concern, because allocation in the old gen requires taking a lock, which may be contended a lot. (There is one of these locks per region, but since currently we allocate into another region only if the current one is full, this does not help a lot).

      Conversely, after mixed gc the old gen PLAB is too large for the young only gc (which just wastes memory).

      The young gen PLAB sizing may be similarly mismatched as the young gen during mixed gc is much smaller than usual, meaning that often more allocation happens (because the objects have less time to die).

      Investigate this issue and propose fixes.

            Unassigned Unassigned
            tschatzl Thomas Schatzl
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: