G1 Full GC for no apparent reason

Solution Unverified - Updated -

Environment

  • Oracle JDK 7, update 75

Issue

  • The old space slowly fills up and space is only reclaimed with the G1 Full GC serial (single-threaded) collector.
  • Old space is not able to be reclaimed by mixed collections, but a G1 Full GC serial collection is able to reclaim a large amount of space.
  • Setting -XX:InitiatingHeapOccupancyPercent=0 to start the next concurrent mark after the current one completes has no effect.

Resolution

Test on the latest JDK8.

Root Cause

This may be related to one of the following bugs fixed in JDK8:
http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6976350
http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8030849

Diagnostic Steps

Analyze the GC logging and see if the old occupancy slowly rises over time, leading to a G1 Full GC that reclaims a large amount of space.

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.