首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >猫7-我的堆漏了吗?

猫7-我的堆漏了吗?
EN

Stack Overflow用户
提问于 2014-05-15 09:03:02
回答 1查看 227关注 0票数 0

我们在测试环境中有Tomcat 7(0.0.47),我决定从它中提取堆转储,看看我们的内存是否还好。

它包含三个应用程序--一个是jersey+spring rest web应用程序,另一个是几乎没有传入http请求的web应用程序,但石英是一个业务逻辑很重的应用程序,第三个是轻量级web应用程序,它支持一些jmx点与某些类一起工作。

在形象化中,我看到了一些让我害怕的价值观。我想知道是否还好还是出了什么问题?

  1. WebappClassLoader为泽西rest应用程序保留了25 364 571的大小,而其他两个应用的类加载器则要小得多--大约5KK和8KK。可以吗?
  2. 汇总选项卡显示我有337个类加载程序和3376个GC根?这是不是太过分了?总数:1 573 037
  3. 我还试着在半个小时后(半小时后)选择不包括:live选项,我在一个摘要中看到,我有几乎相同数量的类加载器(346)和GC根(3329)。但是“活和死”垃圾场的大小要比“活”垃圾场大得多--926 vs对390 vs。可以吗?还是我有一些内存泄漏?
  4. 我查看了大型类加载程序转储,发现其中最大的保留大小是HashMap resourceEntries。这个hashmap代表什么?我应该查看未使用的外部库并排除它们以缩小这个大小,还是可以呢?

很抱歉有一些愚蠢的问题,我在内存优化方面有点新手

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-15 09:04:41

  1. 您为服务器分配了多少内存?
  2. 你的GC标志是什么?

您的生产应用程序是否被用于OutOfMemoryException或Heap的PermGen所取代?如果没有,并且您的服务器已经运行了>1周,则不会,您很可能没有问题。

编辑:如下所示,可能需要进行一些GC调优:

代码语言:javascript
复制
JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled"
JAVA_OPTS="$JAVA_OPTS -XX:+AggressiveOpts -XX:+UseFastAccessorMethods"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23673719

复制
相关文章

相似问题

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