项目框架,springmvc + mybatis +mysql
linux上使用tomcat作为服务器,但运行一段时间后,就会出现下面错误:
linux上使用tomcat作为服务器,但运行一段时间后,就会出现下面错误:
Jul 19, 2016 9:34:48 AM org.apache.tomcat.util.net.NioEndpoint$SocketProcessor doRun SEVERE: java.lang.OutOfMemoryError: PermGen space
贴下本人配置文件代码,web.xml,已经配置了IntrospectorCleanupListener监听:
<!-- 防止springn内存泄漏 --> <listener> <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener>
服务器上tomcat配置文件也修改了,catalina.sh中按照网上说的,增大了tomcat内存:
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m" echo "Using CATALINA_BASE: $CATALINA_BASE" echo "Using CATALINA_HOME: $CATALINA_HOME" echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"
但是还是时不时的会出现上面所说的错误,希望碰到的能说下解决办法
解决方案
20
JAVA_OPTS=”-server -Xms800m -Xmx800m -XX:MaxNewSize=256m -XX:PermSize=128M -XX:MaxPermSize=256M”
20
perm区用于存放Class和Meta的信息,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以假如你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。