GC设置为:
Min, max, total JVM size (-Xms -Xmx)
JVM_SIZE="-Xms24g -Xmx24g"
New Generation Sizes (-Xmn)
JVM_SIZE_NEW="-Xmn2g"
Type of Garbage Collector to use
JVM_GC_TYPE="-XX:+UseConcMarkSweepGC -XX:+UseParNewGC"
Tuning options for the above garbage collector
JVM_GC_OPTS="-XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=75 -XX:SurvivorRatio=8 -XX:+CMSParallelRemarkEnabled -XX:+CMSScavengeBeforeRemark -XX:+UseCMSCompactAtFullCollection -XX:+CMSClassUnloadingEnabled"
也许24克对于CMS来说太大了?
2014-03-03T19:34:10.687 0800:74.121:[GC [1 CMS-initial-mark:1431731K(23068672K)] 3170863K(24956160K),0.8289630 secs] [次:用户= 0.83 sys = 0.00,real = 0.83 secs]应用程序线程停止的总时间:0.8294730秒
1 回答
这取决于你的业务,它需要那么多,或者它可以用少于24克 .
然而,记忆由2个maim空间隔开,年轻和年老 . 这两个空格是分开收集的,所以要启用
CMS
,你需要使用‑XX:+UseConcMarkSweepGC
CMS
将收集年轻人,如果它被填补或一段时间 . 并且有一些建议将年轻空间设置如下:这将加快
GC
并使其更准确 . 这意味着旧的不会填补那么快(避免过早促销对象) .也可以用来控制
GC
延迟: