Tomcat PermSpace

MQue

Top Contributor
Hi,

Meine Appl ist schon einigermaßen groß so dass ich diese auf dem Tomcat (über Netbeans) nur einmal deployen kann - beim zweiten mal bekomme ich eine OutOfMemory Exception. -XX:MaxPermSize= hab ich schon auf einen hohen Wert gesetzt (1524m - so hoch machts ja fast keinen Sinn mehr).

Das Problem beim Deployen ist, dass der PermSpace nicht aufgeräumt wird sondern immer dazu- deployed wird.
Ich muss jetzt immer die Appl zuerst undeployen, dann Tomcat neu starten und dann wieder deployen - dann funktionierts einwandfrei.
Wie macht ihr das in euerer Development- Umgebung?

Besten Dank,
MQue
 
Weisst du was die PermGen zumüllt?

Sind das "nur" viele Klassen oder gibt es da noch was anderes?
 
Ich hatte das Problem genau so auch mal. Ist allerdings schon etwas her. Schuld war eine ältere Version von Hibernate, welches eine Abhängigkeit zu cglib hatte. Die haben das in neueren Versionen auf javassist umgestellt und mit der neuen Hibernate Version gab's die Probleme nicht mehr. Benutzt Du vielleicht eine ältere Version von Hibernate oder cglib?
 
Hibernate dürfte ziemlich sicher schuld sein, müllt die PermGen Space mit lauter Proxyklassen zu, und entfernt nie die Referenz drauf.
 
Hätte noch eine Frage zu diesem Thema - wie kann ich das bei meinem lokalen Tomcat feststellen, was den PermGen Space so zumüllt - habt ihr dafür ein Tool?
 
du kannst dir mit JVisualVM (ist unter Windows im JDK Ordner enthalten) das Memory Management im Tomcat anschauen, da sieht man auch PermGen.
 
du kannst dir mit JVisualVM (ist unter Windows im JDK Ordner enthalten) das Memory Management im Tomcat anschauen, da sieht man auch PermGen.

Die ist die beste Lösung zum Bugtracking bei dem Problem.

Zusätzlich würde ich mal gucken ob du auch alle ResultSet usw. Closed, da wenn diese größere Datenmengen halten, auch sehr viel platz brauchen und nicht freigegeben werden.
 
Die ist die beste Lösung zum Bugtracking bei dem Problem.

Zusätzlich würde ich mal gucken ob du auch alle ResultSet usw. Closed, da wenn diese größere Datenmengen halten, auch sehr viel platz brauchen und nicht freigegeben werden.

Ich verwende Spring in Verbindung mit Hibernate - da gibts keine ResultSets.
Werd mir das mal mit dem Tool anschauen.

Besten Dank!


[EDIT]

Hab das Tool jetzt schnell mal ausprobiert -> was den PermGen space anfüllt - welche Klassen - seh ich aber mit VisuamVM nicht?!
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben