Optimierung Xms/Xmx/XX:MaxPermSize in der JVM
Was sind die notwendigen Schritte, um ein optimierter Wert von Xms/Xmx/XX:MaxPermSize
?
Jeden Fall kann ich einen großen Wert, aber wie Sie wissen, GC Zeit nehmen, in große Speicher. Was sind die Allgemeine Empfehlung, wenn spare ich mir die Zeit zum testen und Auffinden dieser Wert?
Ist zum Beispiel die folgenden Abbildungen helfen?
Eden Space heap usage - 42MB / 62MB (used / committed)
Survivor Space heap usage - 8.5MB / 8.5MB (used / committed)
CMS Old Gen heap usage - 100MB / 217MB (used / committed)
Non-heap memory pool usage - 36MB
Siehe curiousmentality.co.uk/2011/11/tuning-jvm-Speicher-Einstellungen für einige praktische Infos
Siehe auch GC-tuning-Frage: stackoverflow.com/q/6871213/772000
Siehe auch GC-tuning-Frage: stackoverflow.com/q/6871213/772000
InformationsquelleAutor Ryan | 2013-01-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist die Allgemeine Regel, dass Sie sollten nicht ändern Sie den JVM-Speicher-Einstellungen, bevor Sie entdeckt haben, ein problem, dass gelöst werden müssen. Die JVM hat einen ziemlich guten job bei der Abstimmung die meisten Parameter zur Laufzeit an Ihre Anwendung anpassen.
Wenn Sie entdeckt haben, eine Notwendigkeit zur Optimierung der Speicher-Parameter es hängt davon ab, was Sie brauchen, um zu optimieren. Die Einstellungen, die Sie verwenden würden, würde stark variieren, je nachdem, auf welchen Aspekt Sie brauchen, um zu optimieren (zum Beispiel Einstellungen für die Minimierung der Pausen sind sehr Verschieden von Einstellungen, die den Durchsatz zu maximieren).
Wenn Sie wirklich brauchen, um zu optimieren, bitte mehr Informationen liefern, auf welche Aspekte Sie optimieren müssen.
InformationsquelleAutor K Erlandsson
Beim tuning GC, müssen Sie sammeln die GC-Statistik über einen längeren Zeitraum und dann handeln. Nur eine Momentaufnahme der Generation, die Größe ist nicht genug.
Sollten Sie:
Ermöglichen die Volle GC logging. Leicht und dennoch kraftvoll.
-XX:+PrintTenuringDistribution -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=jvm.log -XX:+HeapDumpOnOutOfMemoryError -Xloggc:gc.log -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -showversion
Betrachten Sie zusätzliche Möglichkeiten zum sammeln von Informationen über Ihre GC. Die Protokollierung ist in Ordnung, aber es gibt manchmal leichte Kommandozeilen-tools, die Ihnen noch mehr Einblick. ZB.
jstat
für den Hotspot, die Ihnen zeigen, Besetzung/Kapazität Eden, Survivor und Alten Gen.Berechnen:
Sobald Sie diese Daten haben, können Sie beginnen Dimensionierung der Generationen und immer wieder überwachung der Auswirkungen der änderungen, die Sie machen. Die üblichen Dimensionierung Empfehlungen für den Durchsatz sind:
Im Allgemeinen, sizing-Empfehlungen hängt vom Ziel Ihrer tuning:
Siehe auch das GC-tuning Frage: Gibt es eine Kochbuch-Ratgeber für GC Probleme?
InformationsquelleAutor Aleš
Ih den seltenen Fällen, wo muss ich einstellen dieser Werte gibt es ein Programm namens JavaVisualVM die in der jdk (bin-Ordner, glaube ich), die finde ich sehr nützlich. Sie können eine Verbindung zu Ihrem Laufenden vm und analysieren alle laufzeitparameter.
Unter "plugins" - Sektion finden Sie auch ein sehr nützliches plugin für die überwachung der gc, wo man sehen kann was genau Los ist.
InformationsquelleAutor Chris