首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存问题分析

内存问题分析
EN

Stack Overflow用户
提问于 2011-01-12 19:06:18
回答 3查看 2K关注 0票数 2

编辑--所以看看Cache#15和JVisualVM中的MemoryStore#9。结果是查询缓存。希望删除conf中将查询缓存限制为小于10k项(默认值)的缓存配置将解决此问题.

我们在tomcat 6x上部署了一个Grails应用程序(v1.2.0)。经历了一次OOM事故。得到堆转储,并开始在JVisualVM中分析它。这就是我所看到的

还有这个

所以有很多ehcache东西,当然还有很多字节和char数组。我已经尝试过搜索“grails内存泄漏ehcache”,但是没有任何明确的消息出现。有没有人见过像这样的问题,或者对造成这种情况的原因有任何见解?它是否是配置错误的ehcache?

我们正在使用各种插件(acegi,石英,邮件,后台线程),所有最新版本的grails版本1.2.0。

编辑-更多信息

使用以下内容启动tomcat

代码语言:javascript
复制
-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xms1024m -Xmx2048m -XX:MaxPermSize=256m -d64 -server -XX:+HeapDumpOnOutOfMemoryError -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:+UseConcMarkSweepGC

而错误是

代码语言:javascript
复制
java.lang.OutOfMemoryError: Java heap space

有趣的是,我们过去常常得到与perm gen空间相关的错误,但是当我更新到上面显示的Java配置时,permgen空间错误就消失了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-12 19:21:13

拥有大量的字符串和char[]是正常的。我会尝试纠正ehcache配置.很明显,您可以缓存到很多。有一些选项可以将缓存转储到磁盘,也许这是您的解决方案。

编辑: PermGen的消失是因为-XX:MaxPermSize=256m,这基本上就是。

票数 2
EN

Stack Overflow用户

发布于 2011-01-12 19:18:48

你可能会用光烫发空间,而不是堆。

将GC记录到一个文件并进行链接,并回发JVM args。

票数 1
EN

Stack Overflow用户

发布于 2011-01-12 20:18:18

您使用的是Grails 1.2.0还是1.2.5 (最新的1.2.x)?最新的马厩是1.3.6。不过,我认为问题是ehcache配置错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4672899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档