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

Shenandoah: "adaptive" heuristic is prone to missing load spikes

    XMLWordPrintable

    Details

    • Type: Enhancement
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: 8-shenandoah, 11.0.9, 15, 16
    • Fix Version/s: 16
    • Component/s: hotspot
    • Subcomponent:
      gc
    • Resolved In Build:
      b26

      Description

      Filed on behalf of William Kemper.

      Shenandoah's "adaptive" heuristic triggers a concurrent GC cycle when the average allocation rate since the end of the previous cycle would deplete all available memory (less specified headroom reserve) before a new GC cycle would complete.

      When the allocation rate increases sharply, this simple heuristic tends to fail acting in time to prevent a degenerated collection with STW effect, even if there is no risk of heap exhaustion by the application per se.

      It has been have observed in some production services that have periodically occurring load spikes that their tail latencies are dominated by such degenerated cycles. We have also reproduced the behavior with a benchmark (details to be added).

      A heuristic improvement would schedule concurrent cycles more prudently and be based on the premise that even a few extra concurrent cycles are preferable to incurring degenerated cycles.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              bmathiske Bernd Mathiske
              Reporter:
              bmathiske Bernd Mathiske
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: