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.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage