网站以前经常java.lang.OutOfMemoryError,也没仔细去查看到底是哪里出了问题,昨晚又出现这个问题
了,今天就仔细查找了下资料,在这里总结下,如有不正确的地方,非常欢迎各位指出。
以前对java.lang.OutOfMemoryError的概念,只局限于jvm内存溢出了,
今天才发现java.lang.OutOfMemoryError 出现时,有多种情况,比如:PermGen space ,Java heap space 。
我现在遇到的是java.lang.OutOfMemoryError: PermGen space ,查了下资料,一般的说法是内存的永久保
存区域溢出了,永久保存区域是存放class信息和meta信息
的,分配了后,jvm是不会去回收的。必须让jvm分配更多的permsize,才能解决这个问题。
问题来了,我的应用这个permsize一般占用多少呢? 我该在catalina.sh或catalina.bat里面给这个值设置多少呢?
有人说用jconsole或其他内存监控程序来查看这些数据,但是我不想这么麻烦,要配置参数,监听端口什么的,因为在
Qieqie的一个回帖里面,他提到可以用命令查看permsize的占用情况(
http://www.iteye.com/topic/80620#289390)
所以我倾向于用一条简单的命令就可以知道permsize的占用情况,结果这方面的命令还真不少,jstat就是其中之一,
我使用的命令是: jstat -gcpermcapacity pid ,pid是进程的编号,关于jstat的使用说明可以查看 sun的网站:
http://download.oracle.com/javase/1.5.0/docs/tooldocs/share/jstat.html
jstat输出的数据都是以kb为单位的。在我的应用中,permsize占用情况
PGCMN PGCMX PGC PC YGC FGC FGCT GCT
16384.0 65536.0 65536.0 65536.0 132 3 1.866 2.977
所以我决定把PermSize设为128M, MaxPermSize设为256M。
应用在linux服务器上,所以设置catalina.sh如下:
JAVA_OPTS='-Xms1024m -Xmx1024m -XX:PermSize=128M -XX:MaxPermSize=256m '
请大家多多指教。
分享到:
相关推荐
java.lang.OutOfMemoryError: PermGen space 解决方案
讲述了PermGen space错误解决方法以及PermGen space的出现的几张情况
解决OutOfMemoryError: PermGen space,过程是痛苦的,结果是舒畅的
Caused by: java.lang.OutOfMemoryError: PermGen space解决方案, avax.servlet.ServletException: java.lang.OutOfMemoryError: PermGen space at org.apache.jasper.servlet.JspServlet.service(JspServlet.java...
PermGen space
java.lang.OutOfMemoryError: PermGen space及其解决方法,解决项目太大tomcat内存溢出
Tomcat出现_PermGen_space 以及内存溢出等解决方案
java.lang.OutOfMemoryError: PermGen space
Eclipse中通过Tomcat运行J2EE项目java.lang.OutOfMemoryError PermGen space的解决方案
NULL 博文链接:https://eastzhang.iteye.com/blog/1788854
tomcat内存溢出解决办法,错误信息:java.lang.OutOfMemoryError:PermGen space 参考该文档可快速解决内存溢出的问题,服务器:tomcat
解决内存溢出的问题,在使用myeclipse时候,经常遇到内存溢出的问题。
Java内存不足PermGen space错误探究
关于内存溢出报错的处理及解决方案: java.lang.OutOfMemoryError: PermGen space java.lang.OutOfMemory 堆内存、非堆内存都描述
Java内存溢出之PermGen_OOM
用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的 Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP 会LOAD很多...
今天小编就为大家分享一篇关于解决Eclipse Tomcat OutOfMemoryError:PermGen space的问题,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
OutOfMemoryError-PermGen-space-的解决方案亲测有效
希望我得文档能帮助您解决问题,来吧,赶紧来看看这篇文档