Подтвердить что ты не робот

Использование Concurrent Mark Sweep сборщика мусора с объемом памяти более 120 ГБ

Кто-нибудь смог использовать сборщик мусора Concurrent Mark Sweep (UseConcMarkSweepGC) в Hotspot с более чем 120 ГБ оперативной памяти?

JVM начинается просто отлично, если я устанавливаю -ms и -mx на 120G, но если я установил их на 130G, JVM выйдет из строя при запуске. JVM запускает штраф с параллельными и коллекторами G1 (но у них есть свои проблемы).

Кто-нибудь смог использовать сборщик Concurrent Mark Sweep с более чем 120-гигабайтной кучей? Если это так, вам нужно было сделать что-то особенное, или мне просто не повезло здесь?

Стек из дампа ошибки JVM выглядит следующим образом:

Stack: [0x00007fbd0290d000,0x00007fbd02a0e000],  sp=0x00007fbd02a0c758,  free space=1021k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libc.so.6+0x822c0]  [email protected]@GLIBC_2.3+0x822c0
V  [libjvm.so+0x389c01]      CompactibleFreeListSpace::CompactibleFreeListSpace(BlockOffsetSharedArray*, MemRegion, bool, FreeBlockDictionary::DictionaryChoice)+0xc1
V  [libjvm.so+0x3d1ae0]  ConcurrentMarkSweepGeneration::ConcurrentMarkSweepGeneration(ReservedSpace, unsigned long, int, CardTableRS*, bool, FreeBlockDictionary::DictionaryChoice)+0x100
V  [libjvm.so+0x49d922]  GenerationSpec::init(ReservedSpace, int, GenRemSet*)+0xf2
V  [libjvm.so+0x48d0b9]  GenCollectedHeap::initialize()+0x2e9
V  [libjvm.so+0x824098]  Universe::initialize_heap()+0xb8
V  [libjvm.so+0x82657d]  universe_init()+0x7d
V  [libjvm.so+0x4cf0dd]  init_globals()+0x5d
V  [libjvm.so+0x80f462]  Threads::create_vm(JavaVMInitArgs*, bool*)+0x1e2
V  [libjvm.so+0x51fac4]  JNI_CreateJavaVM+0x74
C  [libjli.so+0x31b7]  JavaMain+0x97

Я поднял ошибку для этого с Oracle (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7175901), но мне было интересно, видел ли кто-нибудь еще его.

4b9b3361

Ответ 2

Была та же проблема. Мы уменьшили мс до уровня ниже 140 и, похоже, сработали. Слева mx на 400g и написал тестовую программу.