Tomcat OutOfMemoryError: PermGen space解决方案

来源:互联网 发布:tcss.ping.https.js 编辑:程序博客网 时间:2024/05/17 01:55

最近项目开发中一直遇到内存溢出错误OutOfMemoryError: PermGen space,今天将此问题解决,写博客进行记录。

Permanent Generation space(永久保存区域)主要存放Class(类)和Meta的信息,Class第一次被Load的时候被放入PermGen space区域,Class需要存储的内容主要包括方法和静态属性。发生这种问题的原意是程序中使用了大量的jar或class,使java虚拟机装载类的空间不够,与Permanent Generation space有关。

环境:win7 64,Tomcat 6.0,JDK 1.6,Eclipse 3.7.2

使用jstat -gcpermcapacity pid命令可以查看PermGen Space使用情况,pid对应相应进程的id。单位为KB。
这里写图片描述
可以看出此时PermGen Space剩余空间只有10M左右。

1,从Eclipse中启动的Tomcat解决方案:
设置Default VM Arguments为-Xms512m -Xmx1024m -XX:PermSize=32M -XX:MaxPermSize=256m。32对应启动内存,256对应最大内存。
这里写图片描述
2,直接在Tomcat中启动项目解决方案,在catalina.bat文件中47行左右增加设置set “JAVA_OPTS=-Xms512m -Xmx1024m -XX:PermSize=32M -XX:MaxPermSize=256m”。
这里写图片描述

0 0