Shenandoah GC Guide

Red Hat's concurrent low-latency GC — available on Red Hat OpenJDK builds including ubi9/openjdk-21-runtime and ubi9/openjdk-25-runtime images.

View on GitHub ↗
If you're on OpenShift using UBI9: Shenandoah is available in Red Hat OpenJDK builds (1-20ms pauses) — opt in with -XX:+UseShenandoahGC. Demos 02 and 06 explicitly override it with -XX:+UseG1GC and -XX:+UseZGC for a clean comparison.

Sections

Choose Shenandoah when...

  • Deploying on OpenShift / UBI9 — available in Red Hat builds
  • p99 SLA between 20ms and 100ms
  • Medium to large heaps (4GB-100GB)
  • JDK 8+ support needed (Red Hat builds)

Choose ZGC when...

  • p99 SLA tighter than 10ms
  • Heap exceeds 32GB
  • HPA stability is critical (flat CPU profile)
  • JDK 21+ available
File location in repo
spring-boot-demos/SHENANDOAH-GC-GUIDE.md