首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JVM调优- CMS行为

JVM调优- CMS行为
EN

Stack Overflow用户
提问于 2014-01-01 01:33:20
回答 1查看 184关注 0票数 1

目前,我使用以下jvm参数在Tomcat7中运行应用程序:

代码语言:javascript
运行
复制
-Dcatalina.home=E:\Tomcat
-Dcatalina.base=E:\Tomcat
-Djava.endorsed.dirs=E:\Tomcat\endorsed
-Djava.io.tmpdir=E:\TomcatE\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=E:\Tomcat\conf\logging.properties
-XX:MaxPermSize=512m
-XX:PermSize=512m
-XX:+UseConcMarkSweepGC
-XX:NewSize=7g
-XX:MaxTenuringThreshold=31
-XX:CMSInitiatingOccupancyFraction=90
-XX:+UseCMSInitiatingOccupancyOnly
-XX:SurvivorRatio=6
-XX:TargetSurvivorRatio=90
-verbose:gc -XX:+PrintGCDetails
-XX:+PrintGCApplicationStoppedTime
-XX:+PrintGCDateStamps
-Xloggc:E:\Tomcat7\gc.log

我使用CMS作为垃圾收集器,这种行为似乎非常奇怪。即使有13 7GB的老一代,当执行一个主要的收集(我猜是90%的占用空间-> -XX:CMSInitiatingOccupancyFraction=90),内容管理系统不能清理大量的对象(仍然占用空间至少7 7GB)。我不相信应用程序有这么多长生命周期的对象(不确定!)。CMS不是应该释放更多的空间吗?或者可能与碎片化有关?

由于这种行为,我有频繁的不育系cycles...that,我想减少。

即使使用低暂停GC,有时应用程序也会停止15-30秒...如何减少CMS中的暂停时间?有更多的JVMS而不是有20 of堆的JVMS是不是一个好主意?

非常感谢

EN

回答 1

Stack Overflow用户

发布于 2018-11-25 10:59:22

首先,您可以使用以下命令转储堆转储文件:

代码语言:javascript
运行
复制
jmap -heap:live heap.bin ${pid}

命令,并通过mat查找长寿对象

其次,因为堆大小大于8G,并且您可以尝试垃圾优先(G1)收集器

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

https://stackoverflow.com/questions/20861110

复制
相关文章

相似问题

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