首页 > 代码库 > tomcat服务器java.lang.OutOfMemoryError: PermGen space

tomcat服务器java.lang.OutOfMemoryError: PermGen space

一挂就报内存溢出 下面是TOMCAT日志 
JAVA程序是没有报错, 

Nov 24, 2009 4:07:02 PM org.apache.catalina.core.ApplicationDispatcher invoke 
SEVERE: Servlet.service() for servlet jsp threw exception 
java.lang.OutOfMemoryError: PermGen space 
Nov 24, 2009 4:07:02 PM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet action threw exception 
java.lang.OutOfMemoryError: PermGen space 
Exception in thread "http-8180-36" java.lang.OutOfMemoryError: PermGen space 
Exception in thread "http-8180-35" java.lang.OutOfMemoryError: PermGen space 
Exception in thread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1" java.lang.OutOfMemoryError: 

PermGen space 
Exception in thread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0" java.lang.OutOfMemoryError: 

PermGen space 
Exception in thread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2" java.lang.OutOfMemoryError: 

PermGen space 
Login Success! 
Exception in thread "http-8180-23" java.lang.OutOfMemoryError: PermGen space 
ParametersInterceptor - [setParameters]: Unexpected Exception caught setting ‘action‘ on ‘class 

com.szyt.ajax.SuggestedMessage: Error setting expression ‘action‘ with value ‘[Ljava.lang.String;@14653f5 
ParametersInterceptor - [setParameters]: Unexpected Exception caught setting ‘verificationStatus‘ on ‘class 

com.szyt.ajax.SuggestedMessage: Error setting expression ‘verificationStatus‘ with value ‘[Lj 
Exception in thread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2" java.lang.OutOfMemoryError: 

PermGen space 
Exception in thread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0" java.lang.OutOfMemoryError: 

PermGen space 
Exception in thread "http-8180-14" java.lang.OutOfMemoryError: PermGen space 
Exception in thread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1" java.lang.OutOfMemoryError: 

PermGen space 
Exception in thread "Thread-12" java.lang.OutOfMemoryError: PermGen space 
Exception in thread "http-8180-37" java.lang.OutOfMemoryError: PermGen space 
Exception in thread "http-8180-25" java.lang.OutOfMemoryError: PermGen space 
Exception in thread "Timer-0" java.lang.OutOfMemoryError: PermGen space 
Exception in thread "Thread-10" java.lang.OutOfMemoryError: PermGen space 
Exception in thread "http-8180-39" java.lang.OutOfMemoryError: PermGen space

 

 

解决方案:

非堆空间不足,其实设置已经很大了-XX:PermSize256M -XX:MaxPermSize:512M

应该是 PermGen space 在tomcat 默认是 64m 通常足够用了,溢出原因看 http://wiki.apache.org/tomcat/FAQ/Deployment,其中关键的是

引用:
Because the Classloader (and the Class objects it loaded) cannot be recycled.


其它参考 http://wiki.apache.org/tomcat/OutOfMemory 

考虑使用 -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled
_________________

tomcat服务器java.lang.OutOfMemoryError: PermGen space