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

ParNew: auto-tune ParGCCardsPerStrideChunk

    Details

    • Type: Enhancement
    • Status: Open
    • Priority: P2
    • Resolution: Unresolved
    • Affects Version/s: 9
    • Fix Version/s: tbd_major
    • Component/s: hotspot
    • Labels:
      None
    • Subcomponent:
      gc

      Description

      We found that increasing the value of ParGCCardsPerStrideChunk parameter (we've tried up to 8k) can improve ParNew GC times by quite a non-trivial amount (but can also degrade ParNew GC times in some cases too). Another observation is that (unsurprisingly) larger heaps (specifically: larger old gens) benefit more from higher ParGCCardsPerStrideChunk values.

      We have a change in TwitterJDK that auto-tunes ParGCCardsPerStrideChunk before each ParNew GC based on the old gen capacity. The policy is quite simple:

      old gen capacity < 1G : 256
      1G <= old gen capacity <= 16G : interpolate between 256 and 8k
      old gen capacity > 16 : 8k

      (we picked the [1G,16G] range for old gen capacity somewhat arbitrarily)

      Is there interest in this change (it's really quite small / simple). The old gen capacity and ParGCCardsPerStrideChunk value ranges we used can be fine-tuned further, based on further experimentation, if desired. I'll post some numbers to show the benefit of the change...

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                tonyp Tony Printezis
                Reporter:
                tonyp Tony Printezis
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated: