1、今天使用Tomcat部署Geoserver的时候,刚启动Tomcat,结果报了一大堆错误,然后查看一下错误原因,发现是PermGen space内存溢出,那么解决办法也比较简单了,直接加大JVM的内存就可以了;
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”,手动设置内存大小;
3.2解决方案二
如果是在Eclipse的开发环境下启动,则通过Windows—Preferences—Java—Installed JREs,通过“-Xms800m -Xmx800m -XX:MaxNewSize=256m -XX:MaxPermSize=512m”来设置JVM的内存大小: