幸存者空间100%充满的原因是什么

时间:2015-02-23 15:32:48

标签: java memory-leaks garbage-collection

我们的服务器应用程序似乎行为正常了一段时间,但过了一段时间幸存者空间填充高达100%,从那时起,堆使用量增加,GC周期(包括次要和主要)变得越来越频繁最终堆耗尽。

以下是' jstat -gcutil<的一部分pid> 1000'输出:

  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   
100.00   0.00  99.17  48.34  59.93   7014 11777.197   345  554.945 12332.143
100.00   0.00  99.17  48.34  59.93   7014 11777.197   345  554.945 12332.143
100.00   0.00  99.17  48.34  59.93   7014 11777.197   345  554.945 12332.143
100.00   0.00  99.17  48.34  59.93   7014 11777.197   345  554.945 12332.143
100.00   6.02 100.00  48.55  59.93   7015 11777.197   345  554.945 12332.143
  0.00 100.00   1.30  50.43  59.93   7015 11778.699   345  554.945 12333.644
  0.00 100.00  10.74  50.43  59.93   7015 11778.699   345  554.945 12333.644
  0.00 100.00  19.16  50.43  59.93   7015 11778.699   345  554.945 12333.644
  0.00 100.00  27.72  50.43  59.93   7015 11778.699   345  554.945 12333.644
  0.00 100.00  37.43  50.43  59.93   7015 11778.699   345  554.945 12333.644
  0.00 100.00  45.76  50.43  59.93   7015 11778.699   345  554.945 12333.644
  0.00 100.00  55.35  50.43  59.93   7015 11778.699   345  554.945 12333.644
  0.00 100.00  63.05  50.43  59.93   7015 11778.699   345  554.945 12333.644
  0.00 100.00  72.27  50.43  59.93   7015 11778.699   345  554.945 12333.644
  0.00 100.00  81.21  50.43  59.93   7015 11778.699   345  554.945 12333.644
  0.00 100.00  90.46  50.43  59.93   7015 11778.699   345  554.945 12333.644
  0.00 100.00 100.00  50.43  59.93   7016 11778.699   345  554.945 12333.644
 80.16 100.00 100.00  50.53  59.93   7016 11778.699   345  554.945 12333.644
100.00   0.00   5.96  51.79  59.93   7016 11780.080   345  554.945 12335.026
100.00   0.00   7.73  51.79  59.93   7016 11780.080   345  554.945 12335.026
100.00   0.00   7.73  51.79  59.93   7016 11780.080   345  554.945 12335.026
100.00   0.00   7.73  51.79  59.93   7016 11780.080   345  554.945 12335.026

我的问题是这种应用程序行为背后的主要原因是什么?是太小的年轻空间或堆,一些其他JVM参数,还是只是一个普通的旧内存泄漏?

解决此问题,GC调整或应用程序重构的最佳策略是什么?

JDK 1.6,HP-UX,Xmx / Xms 1G,Xmn 264M,+ UseConcMarkSweepGC,+ UseParNewGC

非常感谢

1 个答案:

答案 0 :(得分:1)

普通的旧内存泄漏,如果您使用的任何库已经泄漏,我会搜索。

是否有任何批处理作业被激活?