NUMA node migrations can cause more heap usage in g1 since we may have more open heap regions.
During JVM initialization, NewSize may be so small that it only allows for a single G1 heap region. But we cannot expand Eden without a GC, and we cannot run a GC yet. If we exhaust NewSize before initialization is finished, we abort the JVM ("GC triggered before VM initialization completed. Try increasing NewSize...").
A small default NewSize can cause this to happen if the OS happens to reschedule the initializing thread to a different NUMA node during initialization, since we would switch to a different G1AllocRegion and attempt to allocate a second HeapRegion.
This is astronomically unlikely to happen, but not impossible.
During JVM initialization, NewSize may be so small that it only allows for a single G1 heap region. But we cannot expand Eden without a GC, and we cannot run a GC yet. If we exhaust NewSize before initialization is finished, we abort the JVM ("GC triggered before VM initialization completed. Try increasing NewSize...").
A small default NewSize can cause this to happen if the OS happens to reschedule the initializing thread to a different NUMA node during initialization, since we would switch to a different G1AllocRegion and attempt to allocate a second HeapRegion.
This is astronomically unlikely to happen, but not impossible.
- relates to
-
JDK-8351500 G1: NUMA migrations cause crashes in region allocation
-
- Resolved
-