中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

Java垃圾回收器和日志级别说明

当前GC日志解析支持:CMS与G1垃圾回收器;其中Java 8版本支持CMS和G1,Java 9及以后仅支持G1。

GC日志页面如未获取到数据,请确认是否开启对应日志级别,在Java进程启动时添加参数,开启后即可查看数据。日志开启级别如表 日志开启级别对照表所示。

  • 如果使用Java版本为Java 8,启动进程时需指定垃圾回收器。

    G1垃圾回收器:-XX:+UseG1GC;CMS垃圾回收器:-XX:+UseConcMarkSweepGC。

  • Java 8启动添加日志打印参数:-verbose:gc -XX:+PrintHeapAtGC -Xloggc:/filepath/filename.log或-XX:+PrintGCDetails -XX:+PrintHeapAtGC -Xloggc:/filepath/filename.log。

    其中filepath为日志保存路径,filename为日志名称,日志名称支持动态参数:%p(pid)、%t(系统时间戳)。

  • Java 9及以后版本日志打印参数格式详见:http://openjdk.java.net/jeps/158
表1 日志开启级别对照表

Java版本

垃圾回收器

日志开启级别

可查看页面

Java 8

G1

-verbose:gc

线性度和细化分析中的详细阶段、eden、Survivor、元数据区暂无数据。

-XX:+PrintGCDetails

可显示全部数据,其中元数据区需有Full GC事件时才有相关记录。

-XX:+PrintHeapAtGC(可选)

可显示内存占用变化的全部数据。

CMS

-verbose:gc

线性度、细化分析中的详细阶段、Old、Young、Eden、Survivor、元数据区暂无数据。

-XX:+PrintGCDetails

可显示除Eden、Survivor外的其余数据,其中元数据区需有Full GC事件时才有相关记录。

-XX:+PrintHeapAtGC(可选)

可显示内存占用变化的全部数据。

Java 9及之后版本

G1

-Xlog:gc*=info

GC标签可显示GC暂停相关信息,heap堆变化信息。

GC,CPU标签可显示线性度信息。

GC,Marking标签可显示并行阶段信息。

-Xlog:gc*=debug

GC,heap标签可查看Eden、Survivor、metaspace内存变化。

phases标签可查看GC暂停细化的详情阶段。