Warum funktioniert mein Sun JVM nicht initialisieren, wenn ich PermGen oben 128M eingestellt?
Frage
Ich brauche meine PermGen zu erhöhen. Derzeit gehe ich die folgenden als Befehlszeilenparameter:
-XX:PermSize=128m
-XX:MaxPermSize=128m
Das funktioniert. Wenn ich versuche, um die Werte zu erhöhen, jedoch nicht mein JVM zu initialisieren, mir diesen Fehler geben:
[2009-06-18 01:39:44] [info] Error occurred during initialization of VM
[2009-06-18 01:39:44] [info] Could not reserve enough space for object heap
[2009-06-18 01:39:44] [info]
[2009-06-18 01:39:44] [395 javajni.c] [error] CreateJavaVM Failed
Insbesondere, ich versuche zu booten Tomcat in der mitgelieferten JRE6 , aber ich glaube nicht, diese Angelegenheit sollte.
Edit: Ich bin mit Win2k3 VM-Image mit 2 GB RAM. Ich booten die JVM mit dem Monitor Tomcat Anwendung mit den folgenden Parametern:
Initial Speicherpool: 1024 , maximaler Speicherpool: 1536
-XX:PermSize=128m
-XX:MaxPermSize=128m
-XX:+CMSPermGenSweepingEnabled
-XX:+CMSClassUnloadingEnabled
-XX:+UseConcMarkSweepGC
-Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 6.0
-Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 6.0
-Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 6.0\endorsed
-Djava.io.tmpdir=E:\tomcat\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\logging.properties
Lösung
Perm Gene sind additiv zu Haufen, so die Prozesse überprüfen -. Sie 1.5+ GB Ihrer 2G zur Verfügung haben, müssen
Andere Tipps
Versuchen Sie es einen größeren Haufen mit -Xmx512m geben (das gibt 512 MB)
Was andere Speicherparameter verwenden Sie? Wie viel Speicher ist in der Maschine dort? Sind Sie auf einer 32-Bit- oder 64-Bit-Maschine?
Ich habe 2 GB Arbeitsspeicher und ich laufe tomcat mit Einstellungen -Xmx1024m -XX: PermSize = 512m -XX: MaxPermSize = 512m. Diese läuft in der Regel gut.