java.lang.OutOfMemoryError: PermGen space 问题解决办法

线上java应用报永久代(PermGen)OOM,遇到永久代OOM那就没啥办法了,只能为永久代扩容。

要做的就是改大PermSize这个参数。那么需要知道之前永久代的容量是多少。但是这个java实例的启动参数里并没有PermSize的定义。那么这个实例一定是用的永久代的默认大小。永久代的默认大小是多少呢?百度了一下,JDK1.6的默认大小是82M。果真如此吗?在这个实例执行 stat
-gccapacity pid  ,命令结果如下:

EXECUTE COMMAND:/export/servers/jdk1.6.0_25/bin/jstat -gccapacity 27478 500 1

NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC      PGCMN    PGCMX
    PGC       PC     YGC    FGC

174720.0 699008.0 174720.0 1792.0 1792.0 171136.0   349568.0  1398144.0   349568.0   349568.0  21248.0  83968.0
 80384.0  80384.0  73933   159

PGCMX对应的是永久代的最大值,83968KB换算成MB正好是82M。这太小了,果断在启动参数上添加一个参数:

-XX:MaxPermSize=256m

为了方便对以后的堆内存OOM对内存分析,再加两个参数:

-XX:+HeapDumpOnOutOfMemoryError

-XX:HeapDumpPath=/export/Logs/im.**.com/

时间: 2024-11-02 18:36:16

java.lang.OutOfMemoryError: PermGen space 问题解决办法的相关文章

java.lang.OutOfMemoryError: PermGen space 解决办法

最近在学习spring mvc时,用了大量的第三方jar包,导致启动tomcat时报内存溢出的错 java.lang.OutOfMemoryError: PermGen space 解决办法:在myeclipse中 点击 window-->preference--->MyEclipse--->Servers---->Tomcat  双击选中你使用的tomcat版本,选择JDK,在Optional java VM arguments 中输入下面两行: -XX:PermSize=128

jvm 内存溢出 在myeclipse中加大tomcat的jvm内存 java.lang.OutOfMemoryError: PermGen space

使用myeclipse启动部署在tomcat7下的三个项目报出java.lang.OutOfMemoryError: PermGen space 解决办法: 在myeclipse中加大jvm内存方法:Window->Preferences->Myeclipse->Services->Tomcat->Tomcat 6.x->JDK,在Optional Java VM arguments:下边的输入框里输入:-Xms128m -Xmx512m -XX:PermSize=12

Tomcat内存溢出(java.lang.OutOfMemoryError: PermGen space)

Tomcat启动时报如下错误:     java.lang.OutOfMemoryError: PermGen space 解决办法:     配置相关内存大小.其中按照启动tomcat的不同方式,分如下三种情况     a):如果是eclipse的tomcat插件启动tomcat,在“window”菜单-“Preferences”-“Tomcat”-“JVM Settings”中添加JVM参数如下即可:         -Xms128M -Xmx512M -XX:PermSize=128M -

项目启动异常java.lang.OutOfMemoryError: PermGen space

java.lang.OutOfMemoryError: PermGen space 解决办法: Eclipse-->window-->Tomcat -->JVM setting  -->Append To JVM Parameters -->add 弹出框填写: -Xmx256M -Xms256M -XX:MaxPermSize=256m struts 项目启动时,在E:\apache-tomcat-6.0.26\conf\Catalina\localhost路径下必须制定项

myEclipse开发内存溢出解决办法myEclipse调整jvm内存大小java.lang.OutOfMemoryError: PermGen space及其解决方法

摘要: tomcat部署多个项目后,启动tomcat正常,访问项目时却会出现该错误在网上查了查又试了好几次,才解决,将解决方法记录下来,以方便以后查看或让遇到同样问题的朋友有个参考 PermGen space是啥就不说了,网上找找大堆,感觉也没必要记这些个概念 问题的根源就是JVM的内存不够用了!!!解决方法: *********************************************************************************************

异常处理系列:java.lang.OutOfMemoryError: PermGen space

今天帮同学解决他的Tomcat启动的问题,报出了一个OutOfMemoryError的异常,然后就搜啊搜的,突然发现特别有趣. 先不扯淡了,先说解决办法: 一看到这个就知道是内存满了.所以要把Tomcat的内存池加大一点. 修改如下: 1. window-->Preferences,然后直接在搜索的那个框里边写上"tomcat",会出现如下的界面: 2. 选中你安装的tomcat版本,选中下面的JDK,在右边的 Optional Java VM arguments 文本框中输入:

windows系统bat方式启动tomcat出现java.lang.OutOfmemoryError:PermGen Space 错误

1.问题情景: 在部署项目时,将两个应用部署到同一个tomcat下,通过startup.bat启动服务时,控制台出现出现java.lang.OutOfmemoryError:PermGen Space 错误服务器环境:    系统版本:windows server 2008 r2    安装内存:64GB    处理器:8核(具体型号记不得了) 2.解决方法: PermGen Space:全称是Permanent Generation Space,是指内存的永久保存区域,这块内存主要是被JVM存

java Web Services搭建环境时遇到的各种问题,记录一下。 java.lang.OutOfMemoryError: PermGen space,org/apache/struts2/util/ObjectFactoryDestroyable

情况:在同一个,myEclipes 下加载俩个项目,一个seriver端,一个client端. 必备: myEclipes    ,apache-tomcat-7.0.42,apache-tomcat-6.0.36  //俩个不同版本的tomcat,目的解决服务器,与客户端的端口冲突 目录结构,及效果图: 一.修改一个tomcat的端口server.xml,如图: (1)D:\Program Files (x86)\apache-tomcat-6.0.36-windows-x64\apache-

Tomcat 性能调优 出现java.lang.OutOfMemoryError: PermGen space

Tomcat 在部署应用中,Server报错:java.lang.OutOfMemoryError: PermGen space,问题就是Tomcat内存分配的太小了. 解决办法 1: 修改Tomcat\bin\catalina.bat文件.找到 tomcat6 为 set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.conf