没有合适的资源?快使用搜索试试~ 我知道了~
Tomcat给我的java.lang.OutOfMemoryError: PermGen
5星 · 超过95%的资源 需积分: 9 30 下载量 65 浏览量
2011-02-11
01:27:16
上传
评论
收藏 59KB DOC 举报
温馨提示
试读
8页
Tomcat给我的java.lang.OutOfMemoryError: PermGenTomcat给我的java.lang.OutOfMemoryError: PermGenTomcat给我的java.lang.OutOfMemoryError: PermGenTomcat给我的java.lang.OutOfMemoryError: PermGenTomcat给我的java.lang.OutOfMemoryError: PermGenTomcat给我的java.lang.OutOfMemoryError: PermGenTomcat给我的java.lang.OutOfMemoryError: PermGenTomcat给我的java.lang.OutOfMemoryError: PermGen
资源推荐
资源详情
资源评论
Tomcat
给我的
java.lang.OutOfMemoryError: PermGen
今天,Tomcat 给了我这么一个异常:java.lang.OutOfMemoryError: PermGen space。
自己是第一次遇到,抱着好奇的心情 google 了一下,居然是个很常见的异常!故记录一
下。:)
原因:
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)那么就会产生此错误信息了。
解决方法:
1. 手动设置 MaxPermSize 大小
修改 TOMCAT_HOME/bin/catalina.bat(Linux 下为 catalina.sh),在“echo "Using
CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -
XX:MaxPermSize=512m
catalina.sh 下为:
JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=128M -XX:MaxPermSize=512m"
2. 将相同的第三方 jar 文件移置到 tomcat/shared/lib 目录下,这样可以达到减少 jar 文档重
复占用内存的目的。
如果遇到这个异常:java.lang.OutOfMemoryError: Java heap space是什么原因呢?
解释:
Heap size 设置
JVM 堆的设置是指 java 程序运行过程中 JVM 可以调配使用的内存空间的设置.JVM 在启动的时
候会自动设置 Heap size 的值,其初始空间(即-Xms)是物理内存的 1/64,最大空间(-Xmx)是
物理内存的 1/4。可以利用 JVM 提供的-Xmn -Xms -Xmx 等选项可进行设置。Heap size 的
大小是 Young Generation 和 Tenured Generaion 之和。
提示:在 JVM 中如果 98%的时间是用于 GC 且可用的 Heap size 不足 2%的时候将抛出此异
常信息。
提示:Heap Size 最大不要超过可用物理内存的 80%,一般的要将-Xms 和-Xmx 选项设置为
相同,而-Xmn 为 1/4 的-Xmx 值。
资源评论
- 落地巴士2013-03-22非常感谢,我的问题解决了
cdguogang
- 粉丝: 9
- 资源: 109
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功