Java GC 日志分析

9

我是一个新手,对gc日志不太了解。

以下是gc日志的含义,请问它是否包含一些有用的信息?

16960.890: [GC [PSYoungGen: 111960K->36400K(523584K)] 845053K->770190K(1286720K), 0.0270419 secs] [Times: user=0.13 sys=0.00, real=0.03 secs] 
16960.917: [Full GC (System) [PSYoungGen: 36400K->0K(523584K)] [PSOldGen: 733789K->714479K(763136K)] 770190K->714479K(1286720K) [PSPermGen: 34154K->34154K(38208K)], 1.0982179 secs] [Times: user=1.09 sys=0.00, real=1.09 secs] 

PSYoungGen是指Java虚拟机中的年轻代(Young Generation),其中包含了Eden空间和两个Survivor空间。Full GC line是指当Java应用程序运行时,垃圾收集器执行完全垃圾收集所需的时间和次数。您可以通过调整Java虚拟机参数来优化这些行为。


1
可能是https://dev59.com/HHNA5IYBdhLWcg3wmfO5的重复问题。 - jontro
1
你有没有阅读过Oracle网站上的文档?特别是这篇文章:http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html。 - Andrew Logvinov
谢谢,我会阅读的。 - snow8261
7个回答

9

一张图片胜过千言万语。通过视觉化可以更容易地解释您的GC日志。在过去中,我发现GCViewer非常有用,包括其相关主题的参考。


6

3

2

一份关于HotSpot JVM内存管理的精彩白皮书将回答您在这个主题上可能有的大部分问题。


1

1

GC日志是解决与内存/CPU相关问题和优化应用程序性能的重要工具。

启用Java 9 GC日志

为了在Java 9中启用GC日志记录,引入了一个新的系统属性。您需要在应用程序启动时传递此系统属性:

-Xlog:gc*:file=

示例:

-Xlog:gc*:file=/tmp/logs/gc.log

分析工具

Java 9中的GC日志格式已完全更改。为了分析Java 9 GC日志,强烈建议使用GC log分析工具,如GCeasy、HPJmeter等。这些工具解析Java 9 GC日志并生成出色的图形可视化数据,报告关键绩效指标和其他几个有用的度量。


0

https://jxray.com/是我使用过的最好的工具之一,它可以提供一些额外的指标,并自动将一些常见的指标汇总为可操作的见解。

与大多数其他工具不同,JXRay积极寻找各种已知的、深入理解的Java内存问题,并为您提供具体的、可操作的发现。这些结果被仔细聚合,以便所有由同一代码管理的坏对象都清晰可见。因此,您立即就能看到需要更改哪些代码以节省最大量的内存。


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