18

Hat es jemand geschafft, den Concurrent Mark Sweep Garbage Collector (UseConcMarkSweepGC) im Hotspot mit mehr als 120 GB RAM zu verwenden?Verwenden von Concurrent Mark Sweep Garbage Collector mit mehr als 120 GB RAM

Die JVM startet gut, wenn ich -ms und -mx auf 120G einstellen, aber wenn ich sie auf 130G setze, stürzt die JVM beim Start ab. Die JVM startet gut mit den parallelen und G1-Kollektoren (aber sie haben ihre eigenen Probleme).

Hat es jemand geschafft, den Concurrent Mark Sweep Collector mit mehr als 120 GB Heap zu verwenden? Wenn ja, musstest du etwas Besonderes machen, oder habe ich nur Pech?

Der Stapel von der JVM Fehler Dump ist wie folgt:

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 

ich einen Fehler für diese mit Oracle erhöht habe (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7175901), aber ich habe mich gefragt, ob jemand sie gesehen hatte.

+4

Ich würde mehr Off-Heap-Speicher verwenden, wenn Sie können. Ich verwende regelmäßig 200-800 GB Off-Heap, während die maximale Heap-Größe 1 GB beträgt und der GC weitgehend leer ist. –

+0

Danke - Ich plane, Off-Heap-Speicher zu verwenden. Allerdings möchte ich immer noch große Heap-Größen ausprobieren, nur um zu sehen, wie gut sie funktionieren. – Neil

+0

Eine Anleitung für vollständige GC-Zeiten ist ungefähr 1 Sekunde pro GB im festgesetzten Bereich. Die Azul JVM ist vollständig parallel (für kleinere und vollständige Sammlungen), der HotSpot GC ist bestmöglich gleichzeitig. ;) –

Antwort

1

haben das gleiche Problem. Wir haben ms auf unter 140 reduziert und es scheint zu funktionieren. Links mx bei 400g und schrieb ein Testprogramm.

+0

Ich hatte kein Glück damit, fürchte ich - die JVM stürzt immer noch ab, wenn sie versucht, den Heap hinter 120G zu erweitern – Neil

Verwandte Themen