Obviously, my screenshot couldn't be attached to the mailinglist, so here is it:

http://timomeinen.de/bilder/PermGenSpace.png


Best regards
Timo Meinen

Am 23.06.2009 um 10:26 schrieb Timo Meinen | mindmatters:

Hello,

we host a Tomcat 6 server with several webapps on it. It is used for continuous integration, so the test webapps are deployed often. We run into OutOfMemoryError: PermGen space after some redeployments and cannot find a solution.

I connected JConsole remotely and made a screenshot after some redeployments. The screenshot is attached to this mail. After the first redeployment of webapp 1 the PermGen raises to 150MB and after the deployment it is freed to 115 MB, which seems to be ok. However, the second redeployment won't release the PermGen as you can see on the screenshot. After that, every redeployment will take another 40MB of PermGen space wich leads to the OutOfMemory error, because we set the MaxPermSize to 256m.

I tried a manual GC, but this worked only once (see screenshot). After this, the GC was useless.


The start parameters of the tomcat server are:

-server -Xmx1g -XX:MaxPermSize=256m -XX:+CMSClassUnloadingEnabled - Djava.awt.headless=true - javaagent:org.springframework.instrument-3.0.0.M2.jar


The stacktrace is:

SEVERE: org/springframework/web/context/request/ AbstractRequestAttributes
java.lang.OutOfMemoryError: PermGen space
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
        at java.lang.Class.getDeclaredMethod(Class.java:1935)
at java.io.ObjectStreamClass.getPrivateMethod(ObjectStreamClass.java: 1382)
        at java.io.ObjectStreamClass.access$1700(ObjectStreamClass.java:52)
        at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:438)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:413)
        at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:310)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java: 1106) at java .io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java: 1509) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java: 1474) at java .io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java: 1392) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java: 1150) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java: 326)
        at java.util.ArrayList.writeObject(ArrayList.java:570)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun .reflect .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun .reflect .DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java: 945) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java: 1461) at java .io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java: 1392) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java: 1150) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java: 326)
        at sun.rmi.server.UnicastRef.marshalValue(UnicastRef.java:274)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java: 315)
        at sun.rmi.transport.Transport$1.run(Transport.java:159)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java: 535) at sun.rmi.transport.tcp.TCPTransport $ConnectionHandler.run0(TCPTransport.java:790)


And the screenshot:





Any help would be great for us. Thank you very much.

Timo Meinen

--
---------------------------------------------------------------------------
mindmatters GmbH & Co. KG
Neuer Kamp 30
20357 Hamburg - St. Pauli

Fon:     +49 40 4840593 0
Fax:     +49 40 4840593 9
Website: www.mindmatters.de

Handelsregister: Amtsgericht Hamburg | HRA 97304 | UID DE225251880
Persönl. haftende Gesellschafterin: mindmatters Verwaltungsgesellschaft mbH
Amtsgericht Hamburg | HRB 84595 | Geschäftsführer: Frank Schmitz



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Viele Grüße
Timo Meinen

--
---------------------------------------------------------------------------
mindmatters GmbH & Co. KG
Neuer Kamp 30
20357 Hamburg - St. Pauli

Fon:     +49 40 4840593 0
Fax:     +49 40 4840593 9
Website: www.mindmatters.de

Handelsregister: Amtsgericht Hamburg | HRA 97304 | UID DE225251880
Persönl. haftende Gesellschafterin: mindmatters Verwaltungsgesellschaft mbH
Amtsgericht Hamburg | HRB 84595 | Geschäftsführer: Frank Schmitz


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to