Warum führt der Garbage Collector keine aggressivere Garbage Collection durch als ein einstelliger, haufenfreier Prozentsatz?
Dies sind meine Sun Hotspot 1.6 JVM-Heap-Einstellungen in WebLogic 11g:
-Xms10g -Xmx10g -XX:MaxPermSize=256m -XX:+UseParNewGC -XX:ParallelGCThreads=2 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:ConcGCThreads=2
Was ich in der JVM-Grafik "Heap Free%" für 24 Stunden sehe, ist im Grunde, dass "Heap Free%" langsam sinkt, bis wir ungefähr 9% erreichen (dies dauert ungefähr 24 Stunden). Dann läuft das System, was aussieht wie ein vollwertiger Grafikprozessor und kehrt zu 97% zurück.
Gibt es eine Einstellung, die ich hinzufügen / ändern sollte, die die JVM anweist, diese vollständige GC früher durchzuführen, als wenn wir weniger als 10% Heap-Free erhalten? z.B. irgendeine Verhältniseinstellung?
Es verursacht keine Probleme, dass es wartet, bis wir 9% frei haben, aber es erschwert das Überwachen / Warnen. Idealerweise möchten wir zu jeder Zeit über 30% frei bleiben, damit wir, wenn wir uns auf diese einstelligen Zahlen beschränken, wissen, dass es irgendeine Art von Problem gibt, z. Speicherleck.