Hello, http://blogs.sun.com/fkieviet/entry/how_to_fix_the_dreaded I recommend this article for your reference.
2009/6/23 Timo Meinen | mindmatters <timo.mei...@mindmatters.de> > 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 > > -- Sincerely yours and Best Regards, Xie Xiaodong