Ich arbeite mit Tomcat 6.0 und während ich indiziere (nicht während ich Tomcat starte), habe ich einen Permgen Space Fehler.
Wie könnte ich diesen Raum vergrößern?
Normalerweise tritt dies bei vielen erneuten Bereitstellungen auf. Ich bin überrascht, dass Sie so etwas wie Indizierung verwenden. Verwenden Sie virtualvm oder jconsole, um den Perm-Bereich zu überwachen und zu überprüfen, ob er nach dem Aufwärmen der Indizierung abfällt.
Vielleicht sollten Sie in Betracht ziehen, zu einer anderen JVM wie der IBM JVM zu wechseln. Es hat keine permanente Generation und ist gegen dieses Problem immun.
Vielen Dank!! Aber wo muss ich es aufschreiben? Ich denke in einem Flile hier: Tomcat / Conf Bin ich falsch?
Blanca
1
Für Tomcat können Sie eine Umgebungsvariable CATALINA_OPTS erstellen, deren Wert diese Optionen verkettet. Das Startskript fügt diese der Java-Befehlszeile hinzu, bevor Tomcat gestartet wird. Dies ist in der Tomcat-Konfiguration nicht möglich, da die JVM zu diesem Zeitpunkt bereits konfiguriert ist.
Peter Tillemans
2
Wenn es sich um FreeBSD handelt, fügen Sie die Optionen zur Datei /etc/rc.conf hinzu. Lesen Sie zuerst das Tomcat-Startskript, um den genauen Parameter zu sehen, nach dem gesucht wird.
Brian Knoblauch
3
In OpenJDK 7 ist CMSPermGenSweepingEnabled zugunsten von CMSClassUnloadingEnabled
Petr Gladkikh
12
Für Tomcat können Sie den permGem-Speicherplatz mithilfe von erhöhen
-XX:MaxPermSize=128m
Dazu müssen Sie eine Datei mit dem Namen setenv.sh im Ordner tomcat / bin erstellen (falls noch nicht vorhanden) und die folgende Zeile einfügen
export JAVA_OPTS="-XX:MaxPermSize=128m"arbeitete für mich mit Clojure + lein repl
Jeff
3
Sie können es auch über die VM-Argumente in Ihrer IDE erhöhen. In meinem Fall verwende ich Tomcat v7.0, das unter Eclipse ausgeführt wird. Doppelklicken Sie dazu auf Ihren Server (Tomcat v7.0). Klicken Sie auf den Link "Startkonfiguration öffnen". Gehen Sie zur Registerkarte "Argumente". Fügen Sie -XX: MaxPermSize = 512m zur Liste der VM-Argumente hinzu. Klicken Sie auf "Übernehmen" und dann auf "OK". Starten Sie Ihren Server neu.
Wenn Sie herausgefunden haben, dass die Speichereinstellungen nicht verwendet wurden und um die Speichereinstellungen zu ändern, habe ich tomcat7w oder tomcat8w im Ordner \ bin verwendet. Dann sollte Folgendes angezeigt werden:
Klicken Sie auf die Registerkarte Java und fügen Sie die Argumente hinzu. Starten Sie tomcat neu
Antworten:
Sie können verwenden:
um den Raum zu vergrößern. Dies verschiebt aber meist nur das Unvermeidliche.
Sie können auch die Speicherbereinigung für PermGen aktivieren
Normalerweise tritt dies bei vielen erneuten Bereitstellungen auf. Ich bin überrascht, dass Sie so etwas wie Indizierung verwenden. Verwenden Sie virtualvm oder jconsole, um den Perm-Bereich zu überwachen und zu überprüfen, ob er nach dem Aufwärmen der Indizierung abfällt.
Vielleicht sollten Sie in Betracht ziehen, zu einer anderen JVM wie der IBM JVM zu wechseln. Es hat keine permanente Generation und ist gegen dieses Problem immun.
quelle
Für Tomcat können Sie den permGem-Speicherplatz mithilfe von erhöhen
Dazu müssen Sie eine Datei mit dem Namen setenv.sh im Ordner tomcat / bin erstellen (falls noch nicht vorhanden) und die folgende Zeile einfügen
Referenz: http://wiki.razuna.com/display/ecp/Adjusting+Memory+Settings+for+Tomcat
quelle
export JAVA_OPTS="-XX:MaxPermSize=128m"
arbeitete für mich mit Clojure + lein replSie können es auch über die VM-Argumente in Ihrer IDE erhöhen. In meinem Fall verwende ich Tomcat v7.0, das unter Eclipse ausgeführt wird. Doppelklicken Sie dazu auf Ihren Server (Tomcat v7.0). Klicken Sie auf den Link "Startkonfiguration öffnen". Gehen Sie zur Registerkarte "Argumente". Fügen Sie -XX: MaxPermSize = 512m zur Liste der VM-Argumente hinzu. Klicken Sie auf "Übernehmen" und dann auf "OK". Starten Sie Ihren Server neu.
quelle
Wenn Sie herausgefunden haben, dass die Speichereinstellungen nicht verwendet wurden und um die Speichereinstellungen zu ändern, habe ich tomcat7w oder tomcat8w im Ordner \ bin verwendet. Dann sollte Folgendes angezeigt werden:
Klicken Sie auf die Registerkarte Java und fügen Sie die Argumente hinzu. Starten Sie tomcat neu
quelle
Bei Debian-ähnlichen Distributionen setzen Sie dies ein
/etc/default/tomcat[67]
quelle