天天看點

什麼是垃圾收集日志?如何啟用日志分析?

什麼是垃圾收集日志?如何啟用日志分析?

與大多數工程師的想法相反,垃圾回收對應用程式有着重要影響。為了優化記憶體與垃圾回收參數,解決與記憶體相關的問題,必須分析垃圾收集日志。

啟用GC日志

啟動應用程式時設定參數啟用GC日志記錄

Java 8及早先版本

下面參數适用于JDK 8及之前所有Java版本。

例如:

Java 9及更高版本

以下參數從JDK 9開始的所有Java版本都支援。

如何分析GC日志?

設定上面的參數得到的GC日志示例:

什麼是垃圾收集日志?如何啟用日志分析?

GC日志包含豐富的資訊,但要了解GC日志并不容易,主要原因是缺少文檔,沒有足夠的文檔解釋GC日志格式。最重要的是,GC日志的格式尚未标準化。

依據JVM供應商(Oracle、IBM、HP、Azul等),Java版本(1.4、5、6、7、8、9),GC算法(串行、并行、CMS、G1、Shenandoah),以及設定的GC系統屬性(-XX:+ PrintGC,-XX:+ PrintGCDetails,-XX:+ PrintGCDateStamps,-XX:+ PrintHeapAtGC…)不同,日志有很大差異。按照這種排列群組合,很容易就有多達60多種不同的GC日志格式。

要分析GC日志,強烈建議使用日志分析工具,比如GCeasy、HPJmeter。這些工具可以解析GC日志,支援資料可視化,報告關鍵性能以及其他有用的名額。