如何理解Full GC日志?

7

目前在生产环境中我看到以下内容:

5429.779: [Full GC [PSYoungGen: 13809K->0K(505216K)] [PSOldGen: 253802K->245481K(319488K)] 267612K->245481K(824704K) [PSPermGen: 70059K->70059K(118784K)], 0.5869143 secs] [Times: user=0.59 sys=0.00, real=0.59 secs]

我理解A->B(C)的意思是:在垃圾回收(gc)之前为A,在gc之后为B,C是不包括tenured和perm的堆(heap)。
我不明白的是方括号外面的部分,即267612K->245481K(824704K)。它指的是什么?
2个回答

3

这是所有代的总和,意味着实际内存中组合堆使用和总堆大小(用大括号表示)。

在给定的示例中,[PSYoungGen: 13809K->0K(505216K)] [PSOldGen: 253802K->245481K(319488K)] 267612K->245481K(824704K)

13809K + 253802K = 267612K

0K + 245481K = 245481K

505216K + 319488K = 824704K

3
我建议您使用工具而不是手动阅读日志。
尝试使用HPJmeter 工具。
我认为这个工具最好。当然,还有很多其他工具。请参考:知道任何Java垃圾收集日志分析工具吗? 一般来说,根据我的经验,使用像上面这样的工具总是更好的选择,它可以简单地导入GC日志文件并为不同的代提供详细的图表。如果您选择手动阅读,则您的时间将更多地投资于阅读而不是性能分析。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接