Tomcat内存溢出解决办法

时间:2022-11-07 17:06:24

1、今天使用Tomcat部署Geoserver的时候,刚启动Tomcat,结果报了一大堆错误,然后查看一下错误原因,发现是PermGen space内存溢出,那么解决办法也比较简单了,直接加大JVM的内存就可以了;

Tomcat内存溢出解决办法

2、错误原因说明:

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM用来存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就可能出现PermGen space错误,这种错误常见在web服务器对JSP进行Pre Compile的时候。如果你的WEB APP下使用了大量的第三方jar,其大小超过了JVM的默认大小(4M),那么就会产生此错误信息;

3、解决方案:

3.1解决方案一

       如果是通过startup.bat的方式启动Tomcat,则打开Tomcat的bin目录,然后找到catalina.bat文件,使用notepad或者其他文本编辑软件打开,在“echo Using CATALINA_BASE:   "%CATALINA_BASE%"”这句代码的上面加入“set JAVA_OPTS=%JAVA_OPTS% -server-XX:PermSize=256M -XX:MaxPermSize=512m”,手动设置内存大小;

Tomcat内存溢出解决办法

Tomcat内存溢出解决办法

3.2解决方案二

       如果是在Eclipse的开发环境下启动,则通过Windows—Preferences—Java—Installed JREs,通过“-Xms800m -Xmx800m -XX:MaxNewSize=256m -XX:MaxPermSize=512m”来设置JVM的内存大小:

Tomcat内存溢出解决办法

Tomcat内存溢出解决办法