当前位置: 代码迷 >> J2EE >> FULL GC这么多,是不是有有关问题
  详细解决方案

FULL GC这么多,是不是有有关问题

热度:333   发布时间:2016-04-17 23:32:11.0
FULL GC这么多,是不是有问题?
Full GC 很多;并且回收的内存并不多;系统有什么隐患?

2014-10-26T08:47:10.981+0800: 859896.226: [Full GC [PSYoungGen: 570368K->534735K(626048K)] [PSOldGen: 1357091K->1357091K(1365376K)] 1927459K->1891827K(1991424K) [PSPermGen: 32559K->32559K(32896K)], 0.2057240 secs] [Times: user=0.21 sys=0.00, real=0.21 secs] 
2014-10-26T08:47:12.556+0800: 859897.800: [GC-- [PSYoungGen: 570368K->570368K(626048K)] 1927459K->1932909K(1991424K), 0.0529310 secs] [Times: user=0.23 sys=0.00, real=0.05 secs] 
2014-10-26T08:47:12.609+0800: 859897.853: [Full GC [PSYoungGen: 570368K->537964K(626048K)] [PSOldGen: 1362541K->1362541K(1365376K)] 1932909K->1900506K(1991424K) [PSPermGen: 32569K->32569K(32896K)], 0.2246240 secs] [Times: user=0.22 sys=0.00, real=0.22 secs] 
2014-10-26T08:47:12.991+0800: 859898.236: [Full GC [PSYoungGen: 570368K->565510K(626048K)] [PSOldGen: 1362541K->1362541K(1365376K)] 1932909K->1928051K(1991424K) [PSPermGen: 32579K->32579K(32896K)], 0.1886150 secs] [Times: user=0.19 sys=0.00, real=0.19 secs] 
2014-10-26T08:47:13.199+0800: 859898.443: [Full GC [PSYoungGen: 570368K->534064K(626048K)] [PSOldGen: 1362541K->1354837K(1365376K)] 1932909K->1888902K(1991424K) [PSPermGen: 32584K->32533K(32832K)], 0.1844990 secs] [Times: user=0.18 sys=0.00, real=0.18 secs] 
2014-10-26T08:47:13.936+0800: 859899.180: [GC-- [PSYoungGen: 570368K->570368K(626048K)] 1925205K->1935742K(1991424K), 0.0704780 secs] [Times: user=0.32 sys=0.00, real=0.07 secs] 
2014-10-26T08:47:14.007+0800: 859899.251: [Full GC [PSYoungGen: 570368K->543646K(626048K)] [PSOldGen: 1365374K->1365374K(1365376K)] 1935742K->1909021K(1991424K) [PSPermGen: 32543K->32543K(32832K)], 0.2522670 secs] [Times: user=0.25 sys=0.00, real=0.25 secs] 
2014-10-26T08:47:15.548+0800: 859900.792: [Full GC [PSYoungGen: 570366K->562735K(626048K)] [PSOldGen: 1365374K->1365374K(1365376K)] 1935740K->1928109K(1991424K) [PSPermGen: 32558K->32558K(32896K)], 0.1860490 secs] [Times: user=0.19 sys=0.00, real=0.18 secs] 
2014-10-26T08:47:16.592+0800: 859901.836: [Full GC [PSYoungGen: 570368K->562074K(626048K)] [PSOldGen: 1365374K->1365374K(1365376K)] 1935742K->1927448K(1991424K) [PSPermGen: 32567K->32567K(32896K)], 0.1755640 secs] [Times: user=0.18 sys=0.00, real=0.18 secs] 
2014-10-26T08:47:17.745+0800: 859902.989: [Full GC [PSYoungGen: 570368K->534153K(626048K)] [PSOldGen: 1365374K->1355158K(1365376K)] 1935742K->1889311K(1991424K) [PSPermGen: 32576K->32533K(32832K)], 0.2068010 secs] [Times: user=0.21 sys=0.00, real=0.20 secs] 
2014-10-26T08:47:22.199+0800: 859907.443: [GC-- [PSYoungGen: 570368K->570368K(626048K)] 1925526K->1927958K(1991424K), 0.0485850 secs] [Times: user=0.21 sys=0.00, real=0.05 secs] 
2014-10-26T08:47:22.248+0800: 859907.492: [Full GC [PSYoungGen: 570368K->534724K(626048K)] [PSOldGen: 1357590K->1357590K(1365376K)] 1927958K->1892314K(1991424K) [PSPermGen: 32562K->32562K(32896K)], 0.2354970 secs] [Times: user=0.23 sys=0.00, real=0.23 secs]

------解决思路----------------------
older区太小了吧
------解决思路----------------------
把dump文件弄下来分析下, 看内存都被哪些对象占用了。
------解决思路----------------------
1.ps -ef
------解决思路----------------------
grep java  找到java的pid,windows直接看资源管理器的pid
2.利用java1.6及以上版本的jmap命令,生成内存快照
$jmap -dump:format=b,file=new.bin pid 
3.利用1.6以上jdk自带的 jvisualvm工具分析快照,找到比较大的内存,分析原因。

------解决思路----------------------
PSPermGen: 32559K->32559K(32896K) PermGen区太小了
------解决思路----------------------
环境方面之前有遇到过的是64位的x系统用了32位的jdk也会出现内存泄露问题
如果gc无法正常收集垃圾,排除大作业和物理内存过小的话,就是程序代码的问题,用jvisualvm 查看一下,那个工具能够详细分析内存中出现的问题。
  相关解决方案