Frage

in meinem Kater Inbetriebnahme i gesetzt -Xms, auf 1 GB -Xmx. innerhalb VisualVM wenn ich überwachen Speicher

  1. , wenn ich von Speicher kann Abtasten, tut es genaue Speichernutzung zeigen, bis, wenn ich ‚Momentaufnahme‘, und drücken Sie dann die Java-Klassen, die unter Verwendung von Speichern zählen korrekte Muster und Instanzen zeigen. warum so?

  2. auch, wie i gesetzt tomcat Speicher auf 1 GB, Speicherunterhalt auf der Erhöhung ing Zip-ZAT und aroudn 960MB steigen. bis i "perform gc" und die Erinnerung zurück zu 200mb drücken ..

  3. denken Sie benötigen Scheduler Kraft Treffer perform.gc zu erstellen () auf Jvm, everday um Mitternacht?

keine Kommentare von meiner Beschreibung

VisualVM Screenshot

War es hilfreich?

Lösung

Was ich glaube, Sie hier sehen, ist die gleichzeitige Garbage Collector junge Generation Cleanups tut, aber der Haufen wird am laufenden Band ständig, so dass es keinen Halt aller Referenzen für eine alte Generation Sammlung bekommen. Wenn Sie schlagen die GC-Taste ausführen Sie tun eine „Stop-the-world“ Kollektion, die Blöcke alle Fäden, die Heap-Gefrieren, und ermöglicht eine viel größere Sammlung auftreten. Mein Hauptanliegen hier wäre - ist eine große Sammlung jemals (nach x Stunden) auftreten? Sind Sie OutOfMemory Fehler mit einem kleineren Haufen zu sehen?

1) Haben Sie die Auto-Refresh-Taste eingeschaltet haben? Es kann auch, dass Profiler sein macht einen kleinen GC (Eden Raum), bevor eine Momentaufnahme.

2) Das ist völlig normal. Garbage Collection dauert seine Zeit und Ressourcen (Prozessorzyklen). Wenn Sie Ihren Haufen auf eine große Größe eingestellt haben, wird es warten, bis es einen gewissen Prozentsatz davon erreicht, bis das Auslösen einer Garbage Collection selbst. Ich denke, dass die Standard-Freiraum, um Live-Objekt-Verhältnis zwischen 40% und 70% Ich weiß tomcat speziell die Art und Weise verändert es die Garbage Collection funktioniert um Version 5, tomcat v4 Performance-Probleme hatte, weil es viel Zeit läuft der Garbage Collector ausgegeben. Vielleicht möchten Sie einige der Forschung hier und sehen Sie tun, wenn tomcat benutzerdefinierte Garbage Collection Optionen hat.

3) Nein. Ein fast voll Haufen ist genau, was Sie anstreben. Es kann sinnvoll sein, den Haufen kleiner zu machen, so dass eine vollständige Garbage Collection nicht so lange dauert. Es ist Kompromiss zwischen vielen Garbage Collection (Pausen) und lange Garbage Collection (lange Pausen). Jede App ist anders, so dass ich in der Regel mit den Standardeinstellungen starten und optimieren je nach Bedarf. Es gibt viele Optionen für die Garbage Collection (und alternative Sammler), wenn Sie daran interessiert sind.

Java 5

Java 6 FAQ , White Paper

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top