我正面临一个问题,我的Java应用程序只是PAUSES&不做任何活动 .

VM args:-XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath = / tmp / javadumps -Xms2048m -Xmx4600m -XX:NewRatio = 3 -XX:UseConcMarkSweepGC -XX:UseParNewGC -XX:PrintGCDetails -XX:PrintGCTimeStamps

该应用程序使用CMS和ParNew收藏家为终身和年轻一代 . 此保管箱链接中提供了GCdetails:https://www.dropbox.com/s/g0ta7699ngpoxe7/mdoaggregatorscript.out_agg4?dl=0

系统细节:2个Xeon核心,7.1 GB(7513700)MemTotal:7513700 kB,MemFree:2173332 kB,缓冲区:90248 kB缓存:67264 kB,SwapCached:0 kB,主动:5071852 kB无效:104700 kB,Active(anon) :5019152 kB

我一直观察到,当应用程序暂停发生时,从ParNew开始的ParNew集合打印输出总是在最后 .

46341.116:[GC46341.116:[ParNew:1059840K-> 1059840K(1059840K),0.0000700 secs] 46341.116:[CMS:2739199K-> 2744012K(3532800K),6.6278210 secs] 3799039K-> 2744012K(4592640K),[CMS Perm: 20858K-> 20858K(34852K)],6.6281870秒] [时间:用户= 6.63 sys = 0.00,实际= 6.63秒] 46347.745:[GC [1 CMS-initial-mark:2744012K(3532800K)] 2744045K(4592640K),0.0015100 secs] [次:用户= 0.00 sys = 0.00,实际= 0.00秒] 46347.746:[CMS-concurrent-mark-start] 46352.379:[CMS-concurrent-mark:4.632 / 4.632 secs] [次:用户= 6.62 sys = 0.01,real = 4.63 secs] 46352.379:[CMS-concurrent-preclean-start] 46352.436:[CMS-concurrent-preclean:0.041 / 0.057 secs] [次:用户= 0.04 sys = 0.02,real = 0.06 secs] 46352.436:[ CMS-concurrent-abortable-preclean-start] CMS:因时间而中止预清洁46357.446:[CMS-并发 - 流产 - 预清洁:3.646 / 5.009秒] [时间:用户= 4.52 sys = 3.12,实际= 5.01秒] 46357.446: [GC [YG占有率:341596 K(1059840 K)] 46357.447:[Rescan(parallel),0.5170340 secs] 46357.964:[weak refs proc essing,0.0000380 secs] 46357.964:[scrub string table,0.0002770 secs] [1 CMS-remark:2744012K(3532800K)] 3085608K(4592640K),0.5175340 secs] [次:用户= 1.04 sys = 0.00,real = 0.52 secs] 46357.964 :[CMS-concurrent-sweep-start] 46359.386:[CMS-concurrent-sweep:1.422 / 1.422 secs] [Times:user = 1.89 sys = 0.47,real = 1.42 secs] 46359.387:[CMS-concurrent-reset-start] 46359.400:[CMS-concurrent-reset:0.013 / 0.013 secs] [次:user = 0.02 sys = 0.00,real = 0.01 secs] 46361.400:[GC [1 CMS-initial-mark:2743986K(3532800K)] 3197213K(4592640K) ,0.4010590秒] [次:用户= 0.40 sys = 0.00,实际= 0.40秒] 46361.801:[CMS-concurrent-mark-start] 46365.768:[CMS-concurrent-mark:3.967 / 3.967 secs] [次:用户= 5.04 sys = 0.00,real = 3.97 secs] 46365.768:[CMS-concurrent-preclean-start] 46365.837:[CMS-concurrent-preclean:0.049 / 0.068 secs] [次:user = 0.05 sys = 0.01,real = 0.07 secs] 46365.837 :[CMS-concurrent-abortable-preclean-start] CMS:因时间而中止预清洁46370.842:[CMS-concurrent-abortable-preclean :1.242 / 5.006秒] [时间:用户= 1.70 sys = 0.72,实际= 5.00秒] 46370.843:[GC [YG占有率:558264 K(1059840 K)] 46370.843:[重新扫描(平行),0.8305230秒] 46371.674:[弱refs处理,0.0000380秒] 46371.674:[scrub string table,0.0002770 secs] [1 CMS-remark:2743986K(3532800K)] 3302250K(4592640K),0.8310160 secs] [次:用户= 1.65 sys = 0.00,real = 0.83秒] 46371.674:[CMS-concurrent-sweep-start] 46373.235:[CMS-concurrent-sweep:1.561 / 1.561 secs] [时间:用户= 2.08 sys = 0.48,实际= 1.57秒] 46373.235:[CMS-concurrent-reset-开始] 46373.251:[CMS-concurrent-reset:0.016 / 0.016 secs] [时间:用户= 0.02 sys = 0.02,实际= 0.01秒] 46375.252:[GC [1 CMS-initial-mark:2743585K(3532800K)] 3436745K( 4592640K),0.6207210秒] [时间:用户= 0.62 sys = 0.00,实际= 0.62秒] 46375.872:[CMS-concurrent-mark-start] 46380.253:[CMS-concurrent-mark:4.381 / 4.381 secs] [次:用户= 5.64 sys = 0.46,real = 4.38 secs] 46380.254:[CMS-concurrent-preclean-start] 46380.364:[CMS-concurrent-preclean:0.080 /0.111秒] [时间:用户= 0.08 sys = 0.07,实际= 0.11秒] 46380.364:[CMS-concurrent-abortable-preclean-start] CMS:由于时间而中止预清洁46385.369:[CMS-concurrent-abortable-preclean: 1.233 / 5.004秒] [时间:用户= 1.84 sys = 0.86,实际= 5.01秒] 46385.370:[GC [YG占用率:845719 K(1059840 K)] 46385.370:[重新扫描(平行),1.2891210秒] 46386.659:[弱refs processing,0.0000390 secs] 46386.659:[scrub string table,0.0002680 secs] [1 CMS-remark:2743585K(3532800K)] 3589305K(4592640K),1.2896320 secs] [次:用户= 2.55 sys = 0.00,real = 1.29 secs] 46386.659:[CMS-concurrent-sweep-start] 46388.213:[CMS-concurrent-sweep:1.554 / 1.554秒] [时间:用户= 2.31 sys = 0.35,实际= 1.55秒] 46388.213:[CMS-concurrent-reset-start] 46388.235:[CMS-concurrent-reset:0.021 / 0.021 secs] [次:用户= 0.03 sys = 0.02,real = 0.02 secs] 46389.132:[GC46389.132:[ParNew:942080K-> 116318K(1059840K),0.1032530 secs] 3685661K-> 2859899K(4592640K),0.1034550 secs] [次:用户= 0.21 sys = 0.00,实= 0.10秒] 46435.520:[GC46435.520:[ParNew:1058398K-> 29773K(1059840K),0.1435140 secs] 3801979K-> 2773355K(4592640K),0.1437390 secs] [次:用户= 0.29 sys = 0.00,实际= 0.15秒] 46488.172:[GC46488.172:[ParNew:971853K-> 18413K(1059840K),0.1826040秒] 3715435K-> 2761995K(4592640K),0.1828270秒] [时间:用户= 0.37 sys = 0.00,实际= 0.18秒] 46530.228:[GC46530.228:[ParNew:960493K-> 18608K(1059840K),0.2217660秒] 3704075K-> 2762190K(4592640K),0.2219740秒] [时间:用户= 0.44 sys = 0.00,实际= 0.23秒] 46574.685: [GC46574.685:[ParNew:960688K-> 23663K(1059840K),0.2601680 secs] 3704270K-> 2767245K(4592640K),0.2603980 secs] [次:你ser = 0.52 sys = 0.00,real = 0.26 secs] 46617.432:[GC46617.432:[ParNew:965743K-> 31418K(1059840K),0.2988910 secs] 3709325K-> 2775000K(4592640K),0.2990950 secs] [次:用户= 0.60 sys = 0.00,real = 0.29 secs] 46661.564:[GC46661.564:[ParNew:973498K-> 38269K(1059840K),0.3438770 secs] 3717080K-> 2788322K(4592640K),0.3441020 secs] [次:用户= 0.68 sys = 0.00 ,实数= 0.34秒] 46702.866:[GC46702.866:[ParNew:980349K-> 24715K(1059840K),0.3445660 secs] 3730402K-> 2779810K(4592640K),0.3447720 secs] [次:用户= 0.68 sys = 0.00,real = 0.34秒] 46747.238:[GC46747.239:[ParNew:966795K-> 35986K(1059840K),0.3594350秒] 3721890K-> 2796065K(4592640K),0.3596770秒] [时间:用户= 0.70 sys = 0.00,实际= 0.36秒] 46791.978:[GC46791.978:[ParNew:978066K-> 23342K(1059840K),0.3379110 secs] 3738145K-> 2788380K(4592640K),0.3381030 secs] [次:用户= 0.67 sys = 0.00,real = 0.34 secs]

(当卡住jstat gccause输出时:sudo /usr/java/jdk1.7.0_60/bin/jstat -gccause 31927 10000

S0 S1 E O Y Y YCC YGCT FGC FGCT GCT LGCC GCC 19.82 0.00 60.89 78.27 59.86 1358 1038.979 1348 1441.695 2480.674分配失败无GC 19.82 0.00 60.89 78.27 59.86 1358 1038.979 1348 1441.695 2480.674分配失败无GC

我在这里有2个指针:并发模式失败和ParNew(促销失败)但是我观察到的gc输出结束的所有停顿

46702.866:[GC46702.866:[ParNew:980349K-> 24715K(1059840K),0.3445660 secs] 3730402K-> 2779810K(4592640K),0.3447720 secs] [次:用户= 0.68 sys = 0.00,real = 0.34 secs] 46747.238:[ GC46747.239:[ParNew:966795K-> 35986K(1059840K),0.3594350 secs] 3721890K-> 2796065K(4592640K),0.3596770 secs] [次:用户= 0.70 sys = 0.00,real = 0.36 secs] 46791.978:[GC46791.978 :[ParNew:978066K-> 23342K(1059840K),0.3379110 secs] 3738145K-> 2788380K(4592640K),0.3381030 secs] [次:用户= 0.67 sys = 0.00,real = 0.34 secs]

关于应用程序的简介:该应用程序创建了4个线程池,总共350个线程,每个线程并行写入数据存储区 . 在线程中创建的所有内存密集型对象都在线程的调用方法内,因此没有内存泄漏,因为一旦线程完成它们就可以进行垃圾收集了 .