应启用JVM GC日志轮转并限制文件大小与数量:JDK 8用-XX:+UseGCLogFileRotation、-XX:GCLogFileSize=10M、-XX:NumberOfGCLogFiles=5;JDK 11+在-Xlog中配置filesize=10m和filecount=5。

GC 日志文件过大容易占满磁盘,尤其在高负载生产环境。解决方法不是手动清理,而是让 JVM 自动轮转(滚动切割)日志文件——核心是启用日志轮转并设定数量与大小限制。
必须启用的轮转开关
无论 JDK 8 还是 JDK 11+,第一步都是显式开启轮转功能:
- JDK 8 及以前:-XX:+UseGCLogFileRotation
- JDK 11+(统一日志框架):-Xlog 参数中已内置轮转支持,无需额外开关,但需明确指定
filecount和filesize
控制单个日志大小
防止单个文件持续膨胀,用以下参数限定最大容量:
- JDK 8:-XX:GCLogFileSize=10M(例如设为 10MB,最小值通常 ≥8KB)
- JDK 11+:filesize=10M(写在
-Xlog的 file 后缀里,如filesize=10m)
限制保留文件总数
避免无限生成新文件,需设定历史日志保留上限:
立即学习“Java免费学习笔记(深入)”;
- JDK 8:-XX:NumberOfGCLogFiles=5(最多保留 5 个滚动文件,命名如
gc.log.0、gc.log.1…) - JDK 11+:filecount=5(同样作用,配合
filesize使用)
推荐的完整配置示例
以 JDK 8 为例,一行写全:
-Xloggc:/data/logs/gc-%t.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=10M说明:%t 按启动时间戳命名主文件,轮转时自动编号;目录 /data/logs/ 需确保 JVM 进程有写权限。


















