Использование 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] __tls_get_addr@@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), но мне было интересно, видел ли кто-нибудь еще это.
2 ответа
Похоже, что это было принято Oracle как ошибка: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7175901
Была такая же проблема. Мы уменьшили мс до 140 и это похоже на работу. Оставил mx на 400g и написал тестовую программу.