Here are the gc log details
2013-10-30T17:37:27.285+0100: 1250455.686: [GC 1250455.686: [ParNew
Desired survivor size 51445760 bytes, new threshold 1 (max 4)
- age 1: 91404824 bytes, 91404824 total
: 881572K->89325K(904384K), 0.0359086 secs] 2755473K->2052121K(2914176K) icms_dc=100 , 0.0362248 secs] [Times: user=0.12 sys=0.00, real=0.04 secs]
2013-10-30T17:37:27.714+0100: 1250456.115: [GC 1250456.116: [ParNew: 877881K->877881K(904384K), 0.0000232 secs]1250456.116: [CMS2013-10-30T17:37:27.937+0100: 1250456.338: [CMS-concurrent-mark: 2.608/3.118 secs] [Times: user=8.55 sys=0.14, real=3.12 secs]
**(concurrent mode failure):** 1962796K->1016548K(2009792K), 3.9820087 secs] 2840677K->1016548K(2914176K), [CMS Perm : 126257K->126176K(228356K)] icms_dc=100 , 3.9823002 secs] [Times: user=3.76 sys=0.01, real=3.98 secs]
2013-10-30T17:37:31.717+0100: 1250460.122: [GC [1 CMS-initial-mark: 1016548K(2009792K)] 1038948K(2914176K), 0.0044446 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
我没有看到任何 FULL GC 发生。
问题是 ParNew 会增加并消耗整个 CPU 使用率。你有什么可以预测的吗?
JVM参数是这些
-XX:CMSInitiatingOccupancyFraction=70
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+CMSIncrementalMode
-XX:+CMSClassUnloadingEnabled
-XX:+PrintTenuringDistribution
-XX:+PrintGCDateStamps
-XX:+PrintGCDetails
-XX:+UseConcMarkSweepGC
-XX:+DisableExplicitGC
-XX:MaxPermSize=256m
-Xmx2944m
-Xms2944m