2016-07-24 14 views
2

Eine Woche tun nach 1.7.0_80 zu java Schalten, dieses Verhalten beobachtetG1 Collector nicht voll GC

S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT 0 32M 0 32M 512M 128M 9.5G 7.7G 640M 475M 26487 157min 0 0min 157min

Nein Voll GC, großer Raum zur alten Generation zugeordnet und zu viele Sammlungen in jungen Generation geschieht .

Nach der vollständigen GC via JMX

Aufruf

S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT 0 32M 0 32M 5.2G 768M 4.8G 2.7G 640M 475M 26592 158.4min 1 0.1min 158min

Und GC mal reduziert viel.

Parameter sind

-Xms10g 
-Xmx10g 
-XX:PermSize=640m 
-XX:MaxPermSize=640m 
-XX:SurvivorRatio=30 
-XX:MaxTenuringThreshold=15 
-XX:+UseG1GC 
-XX:MaxGCPauseMillis=100 
-XX:InitiatingHeapOccupancyPercent=80 
-XX:G1HeapRegionSize=32m 
-XX:ParallelGCThreads=16 

Könnte es wegen -XX sein: MaxGCPauseMillis = 100?

Viele Objekte in alter Generation werden in ehcache mit TimeToIdle von 10 Minuten gehalten, aber ehcache reinigt keine Objekte, wenn nach Ablauf derselben Objekte nicht angefordert wird oder wenn der Cache nicht voll ist.

Antwort

4

-Xmx10g -XX:InitiatingHeapOccupancyPercent=80

Meine erweiterte arithmetische Fähigkeiten mir sagen, dass 80% der 10GB 8GB ist.

OU 7.7G

Das ist weniger als 8.

Daher ist keine gleichzeitige Zyklus eingeleitet. Setzen Sie einen niedrigeren IHOP oder setzen Sie ihn nicht explizit, damit G1 ihn zur Laufzeit automatisch anpassen kann.

+0

Danke für die Erklärung. Wir haben seine Bedeutung falsch ausgelegt. –

Verwandte Themen