java.lang.OutOfMemoryError: PermGen space 问题解决办法
来源:互联网 发布:钓鱼岛知乎 编辑:程序博客网 时间:2024/05/01 07:56
线上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/
这两个参数在发生永久代OOM的时候是不会dump堆内存的,因为永久代跟堆内存没有交集。堆内存包括新生代和老年代,而永久代存储的是class对象,并不在堆中。
- java.lang.OutOfMemoryError: PermGen space 问题解决办法
- java.lang.OutOfMemoryError: PermGen space 问题解决
- 13-java.lang.OutOfMemoryError PermGen space问题解决
- Java.lang.OutOfMemoryError: PermGen space问题解决
- java.lang.OutOfMemoryError: PermGen space 问题解决
- hiveserver2 java.lang.OutOfMemoryError: PermGen space问题解决
- java.lang.OutOfMemoryError: PermGen space PermGen space
- java.lang.OutOfMemoryError: PermGen space tomcat的处理办法
- java.lang.OutOfMemoryError: PermGen space
- java.lang.OutOfMemoryError: PermGen space
- java.lang.OutOfMemoryError: PermGen space
- java.lang.OutOfMemoryError: PermGen space
- java.lang.OutOfMemoryError: PermGen space
- java.lang.OutOfMemoryError: PermGen space
- java.lang.OutOfMemoryError: PermGen space
- java.lang.OutOfMemoryError: PermGen space
- java.lang.OutOfMemoryError: PermGen space
- java.lang.OutOfMemoryError: PermGen space
- 《c primer plus》编程练习回顾-第五章
- Android自实现activity之间切换,view随手指移动
- windows下实现wamp与tomcat环境整合
- java设计模式之单例模式
- 从0到1
- java.lang.OutOfMemoryError: PermGen space 问题解决办法
- Java8 新方法之 Stream(一)
- Number Sequence
- 整合SSH遇到的错误
- MySql表结构修改详解
- 程序员
- VC ADO链接ACCESS数据库
- RMAN单机恢复
- 【转载】JavaBean中DAO设计模式介绍