-XX:MaxPermSize mit oder ohne die Option-XX:PermSize
Wir haben in einem Java.lang.OutOfMemoryError: PermGen space Fehler und im Blick auf die tomcat-JVM params, andere als die -Xms
und -Xmx
params wir geben auch -XX:MaxPermSize=128m
. Nach ein bisschen profiling-ich sehe gelegentlich die garbage collection, was auf dem PermGen space speichern es vom laufen voll.
Meine Frage ist: andere als die Erhöhung der -XX:MaxPermSize
was wäre der Unterschied, wenn ich angeben, wie gut -XX:PermSize
? Ich weiß, der gesamte Speicher dann wäre Xmx+maxPermSize aber es ist eine andere Grund, warum -XX:PermSize
sollte nicht da sein, wenn -XX:MaxPermSize
angegeben ist?
Bitte teilen Sie, wenn Sie real-world-Erfahrung im Umgang mit dieser JVM-Parameter.
ps. Die JVM HotSpot 64-bit Server VM build 16.2-b04
InformationsquelleAutor der Frage dimitrisli | 2011-12-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
-XX:PermSize
gibt die ursprüngliche Größe, die zugewiesen werden beim Start der JVM. Wenn nötig, muss der JVM zugewiesen werden, bis zu-XX:MaxPermSize
.InformationsquelleAutor der Antwort tobiasbayer
Durch das spielen mit Parametern, wie
-XX:PermSize
und-Xms
können Sie die Leistung optimieren - zum Beispiel - den Start der Anwendung. Ich habe nicht sah es vor kurzem, aber ein paar Jahre zurück der Standardwert-Xms
war irgendwas mit 32MB (glaub ich), wenn Ihre Anwendung benötigt, viel mehr als das würde es auslösen einer Anzahl von Zyklen von fill-Speicher - voll-Müll sammeln - erhöhen Sie den Speicher, usw, bis es geladen hatte, alles, was es benötigt. Dieser Zyklus kann schädlich sein für die Start-performance, also direkt zuweisen der erforderlichen Anzahl verbessern konnte starten.Einen ähnlichen Zyklus wird angewandt, um die permanent generation. Also tuning dieser Parameter verbessern kann, startup (unter anderem).
WARNUNG Die JVM hat eine Menge Optimierung und Intelligenz, wenn es um die Vergabe von Speicher, die Aufteilung von eden Raum und älteren Generationen etc, also nicht Dinge tun, wie machen
-Xms
gleich-Xmx
oder-XX:PermSize
gleich-XX:MaxPermSize
wie es wird entfernen Sie einige der Optimierungen der JVM anwenden können, um die Zuordnung der Strategien und damit reduzieren Sie die Leistung Ihrer Anwendung, anstatt es zu verbessern.Wie immer: machen Sie nicht-triviale Messungen, um zu beweisen, dass Ihre änderungen tatsächlich verbessern die Leistung insgesamt (zum Beispiel die Verbesserung der startup-Zeit könnte eine Katastrophe für die Leistung während der Nutzung der Anwendung)
InformationsquelleAutor der Antwort Mark Rotteveel
Wenn man dabei einige performance-tuning-es wird oft empfohlen, um sowohl
-XX:PermSize
und-XX:MaxPermSize
auf den gleichen Wert zu erhöhenJVM
Effizienz.Hier einige Informationen:
Können Sie auch angeben
-XX:+CMSClassUnloadingEnabled
zu ermöglichen Klasse entladenoption, wenn Sie
CMS
GC
. Es kann helfen, verringern die Wahrscheinlichkeit vonJava.lang.OutOfMemoryError: PermGen space
InformationsquelleAutor der Antwort szhem