G1GC tuning

  1. Smaller heap
    -Xmx12G -Xms12G
  2. Even smaller heap
    -Xmx8G -Xms8G
  3. JVM default ratio of pause time used to update RSets
    -Xmx16G -Xms16G -XX:G1RSetUpdatingPauseTimePercent=10
  4. Reduced heap size, JVM default ratio of pause time used to update RSets, and hard-coded region size
    -Xmx8G -Xms8G -XX:G1RSetUpdatingPauseTimePercent=10 -XX:G1HeapRegionSize=8M
  5. Reduced heap size, 5 percent of pause time used to update RSets, and hard-coded region size of 8MB.
    -Xmx8G -Xms8G -XX:G1RSetUpdatingPauseTimePercent=5 -XX:G1HeapRegionSize=8M
  6. Reduced heap size, 5 percent of pause time used to update RSets, hard-coded region size, and a reduced initiating occupancy threshold.
    -Xmx8G -Xms8G -XX:G1RSetUpdatingPauseTimePercent=5 -XX:G1HeapRegionSize=8M -XX:InitiatingHeapOccupancyPercent=35
  7. Reduced heap size, 5 percent of pause time used to update RSets, hard-coded region size, and an increased initiating occupancy threshold.
    -Xmx8G -Xms8G -XX:G1RSetUpdatingPauseTimePercent=5 -XX:G1HeapRegionSize=8M -XX:InitiatingHeapOccupancyPercent=55
  8. An intermediate sized heap with hard-coded region size.
    -Xmx12G -Xms12G -XX:G1HeapRegionSize=8M -XX:G1RSetUpdatingPauseTimePercent=5
  9. An intermediate sized heap with hard-coded region size, and reduced initiating occupancy threshold.
    -Xmx12G -Xms12G -XX:G1HeapRegionSize=8M -XX:G1RSetUpdatingPauseTimePercent=5 -XX:InitiatingHeapOccupancyPercent=35
  10. Reduced heap size, reduced soft-realtime pause target, and a decreased initiating occupancy threshold.
    -Xmx8g -Xms8g -XX:G1RSetUpdatingPauseTimePercent=5 -XX:MaxGCPauseMillis=150 -XX:InitiatingHeapOccupancyPercent=30