How to Resolve GC Allocation Failure Errors

(Doc ID 2396339.1)

Last updated on MAY 09, 2018

Applies to:

Oracle Knowledge - Version 8.6 and later
Information in this document applies to any platform.

Goal

What does GC (allocation error) actually mean?

A GC allocation failure means that the garbage collector could not move objects from young gen to old gen fast enough because it does not have enough memory in old gen.  This can cause application slowness.

A more detailed explanation can be found in this article which is about one of the Java garbage collectors that describes what an Allocation Failure is.
https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/g1_gc.html
Allocation (Evacuation) Failure
As with CMS, the G1 collector runs parts of its collection while the application continues to run and there is a risk that the application will allocate objects faster than the garbage collector can recover free space.  In G1, the failure (exhaustion of the Java heap) occurs while G1 is copying live data out of one region (evacuating) into another region.  The copying is done to compact the live data.  If a free (empty) region cannot be found during the evacuation of a region being garbage collected, then an allocation failure occurs (because there is no space to allocate the live objects from the region being evacuated) and a stop-the-world (STW) full collection is done.  [stop-the-world means that all threads are stopped and therefore no application work is being done]
 

Solution

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms