Erhöhen Sie den Permgenraum


88

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?

Vielen Dank


Ich überprüfe ähnliche Fragen schon einmal, helfe mir aber nicht. Wohin geht -XX: NewSize = 2.125m?
Blanca

Antworten:


142

Sie können verwenden:

-XX:MaxPermSize=128m

um den Raum zu vergrößern. Dies verschiebt aber meist nur das Unvermeidliche.

Sie können auch die Speicherbereinigung für PermGen aktivieren

-XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled

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


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.


3

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:

Katermonitor

Klicken Sie auf die Registerkarte Java und fügen Sie die Argumente hinzu. Starten Sie tomcat neu


@ Jérémie BI hat nicht genug Reputationspunkt, um ein Bild direkt hinzuzufügen.
Kevin STS

0

Bei Debian-ähnlichen Distributionen setzen Sie dies ein /etc/default/tomcat[67]

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.