Java CMS GC,GC线程在系统空闲时占用CPU

Java CMS GC,GC线程在系统空闲时占用CPU,java,garbage-collection,jvm,tomcat7,concurrent-mark-sweep,Java,Garbage Collection,Jvm,Tomcat7,Concurrent Mark Sweep,我们在Tomcat7、JDK7和AmazonLinux中有一个web应用程序。这是我们为GC配置所做的: -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled" 我们没有启用“PrintGCDetails” 这是每隔几秒钟在gc.log文件中打印出来的内容(当应用程序此时处于0负载下时,连续48小时-绝对没有活动,即使这样,也会打印出以下内容,这些线程占用的CPU为15%)(请参阅下面的上下文): 我们看到,以下GC线程占用CPU(总体约1

我们在Tomcat7、JDK7和AmazonLinux中有一个web应用程序。这是我们为GC配置所做的:

-XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled"
我们没有启用“PrintGCDetails”

这是每隔几秒钟在gc.log文件中打印出来的内容(当应用程序此时处于0负载下时,连续48小时-绝对没有活动,即使这样,也会打印出以下内容,这些线程占用的CPU为15%)(请参阅下面的上下文):

我们看到,以下GC线程占用CPU(总体约15%),即使:

  • 系统中没有任何活动
  • 除这些线程外,没有其他线程处于活动状态,这将持续48小时,此时系统的负载为0
  • 系统在前24小时也处于0负载下,然后这些线程变为活动状态
  • 当这些线程处于活动状态并占用CPU时,前面的行将打印在gc.log中

  • 这持续了2天,当我们最终通过在这个JVM中调用web应用程序加载了5分钟后,一切都停止了。我们注意到,这些线程不再占用CPU(它们占用),在占用的堆和可用堆之间必须有足够的缓冲区。提高(最大)堆的大小,使占用的堆占总堆的70%解决了问题。当算法为CMS时,这一点尤为重要。
    吸取的教训。

    按堆的占用大小,您指的是应用程序加载/启动后或完全GC发生后的大小?感谢为工作流加载应用程序并发生完全GC。最初将堆的大小增加到一个较大的值,然后运行工作流并查看堆的增长。然后调用完全GC并查看值。That将是已占用的堆。请尝试将堆设置为已占用堆的70%左右的值。重复此操作,看看此问题是否消失。
    940568.925: [GC 7425641K(8277888K), 0.2201750 secs]
    940572.415: [GC 7425641K(8277888K), 0.1782950 secs]
    940574.101: [GC 7425641K(8277888K), 0.1736550 secs]
    940577.545: [GC 7425647K(8277888K), 0.1779190 secs]
    
    "Gang worker#0 (Parallel GC Threads)" prio=10 tid=0x00007fad9402e000 nid=0x629d runnable
    "Gang worker#1 (Parallel GC Threads)" prio=10 tid=0x00007fad94030000 nid=0x629e runnable
    "Gang worker#2 (Parallel GC Threads)" prio=10 tid=0x00007fad94031800 nid=0x629f runnable
    "Gang worker#3 (Parallel GC Threads)" prio=10 tid=0x00007fad94033800 nid=0x62a0 runnable
    "Gang worker#4 (Parallel GC Threads)" prio=10 tid=0x00007fad94035800 nid=0x62a1 runnable
    "Gang worker#5 (Parallel GC Threads)" prio=10 tid=0x00007fad94037000 nid=0x62a2 runnable
    "Gang worker#6 (Parallel GC Threads)" prio=10 tid=0x00007fad94039000 nid=0x62a3 runnable
    "Gang worker#7 (Parallel GC Threads)" prio=10 tid=0x00007fad9403b000 nid=0x62a4 runnable
    "Gang worker#8 (Parallel GC Threads)" prio=10 tid=0x00007fad9403d000 nid=0x62a5 runnable
    "Gang worker#9 (Parallel GC Threads)" prio=10 tid=0x00007fad9403e800 nid=0x62a6 runnable
    "Gang worker#10 (Parallel GC Threads)" prio=10 tid=0x00007fad94040800 nid=0x62a7 runnable
    "Gang worker#11 (Parallel GC Threads)" prio=10 tid=0x00007fad94042800 nid=0x62a8 runnable
    "Gang worker#12 (Parallel GC Threads)" prio=10 tid=0x00007fad94044000 nid=0x62a9 runnable
    "Concurrent Mark-Sweep GC Thread" prio=10 tid=0x00007fad9418b000 nid=0x62ae runnable
    "Gang worker#0 (Parallel CMS Threads)" prio=10 tid=0x00007fad94183000 nid=0x62aa runnable
    "Gang worker#1 (Parallel CMS Threads)" prio=10 tid=0x00007fad94185000 nid=0x62ab runnable
    "Gang worker#2 (Parallel CMS Threads)" prio=10 tid=0x00007fad94187000 nid=0x62ac runnable
    "Gang worker#3 (Parallel CMS Threads)" prio=10 tid=0x00007fad94188800 nid=0x62ad runnable
    
    940568.925: [GC 7425641K(8277888K), 0.2201750 secs]
    940572.415: [GC 7425641K(8277888K), 0.1782950 secs]
    
    1376.326: [GC [1 CMS-initial-mark: 6481517K(7281088K)] 6536750K(8277888K), 0.0094620 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] 
    1376.336: [CMS-concurrent-mark-start]
    1377.992: [CMS-concurrent-mark: 1.656/1.656 secs] [Times: user=6.62 sys=0.00, real=1.66 secs] 
    1377.992: [CMS-concurrent-preclean-start]
    1378.005: [CMS-concurrent-preclean: 0.014/0.014 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] 
    
    1378.006: [CMS-concurrent-abortable-preclean-start]
    CMS: abort preclean due to time 1413.110: [CMS-concurrent-abortable-preclean: 4.169/35.104 secs] [Times: user=4.23 sys=0.01, real=35.11 secs] 
    1413.111: [GC[YG occupancy: 55233 K (996800 K)]1413.111: [Rescan (parallel) , 0.0154040 secs]1413.126: [weak refs processing, 0.0001380 secs]1413.126: [class unloading, 0.0013450 secs]1413.128: [scrub symbol table, 0.0023140 secs]1413.130: [scrub string table, 0.0004850 secs] [1 CMS-remark: 6481517K(7281088K)] 6536751K(8277888K), 0.0201870 secs] [Times: user=0.20 sys=0.00, real=0.02 secs] 
    1413.131: [CMS-concurrent-sweep-start]
    1414.151: [CMS-concurrent-sweep: 1.020/1.020 secs] [Times: user=1.02 sys=0.00, real=1.02 secs] 
    1414.151: [CMS-concurrent-reset-start]
    1414.177: [CMS-concurrent-reset: 0.026/0.026 secs] [Times: user=0.03 sys=0.00, real=0.02 secs]