1.命令格式
java <GC日志参数> -jar <your_application.jar>
2. JDK8 具体的GC日志参数
| JVM配置 | 描述 | 
|---|
| -Xloggc:/path/to/gc.log | 写入 GC 日志的路径 | 
| -XX:+UseGCLogFileRotation | 启用 GC 日志文件轮换 | 
| -XX:NumberOfGCLogFiles=5 | 要保留的轮换 GC 日志文件数 | 
| -XX:GCLogFileSize=104857600 | 用于启动轮换的每个 GC 日志文件的大小 | 
| -XX:+PrintGCDetails | 详细的GC日志 | 
| -XX:+PrintGCDateStamps | 实际日期和时间戳 | 
| -XX:+PrintGCApplicationStoppedTime | 应用程序在 GC 期间停止的时间量 | 
| -XX:+PrintGCApplicationConcurrentTime | 应用程序在 GC 之间运行的时间量 | 
| -XX:-PrintCommandLineFlags | 打印 GC 日志中的所有命令行标志 | 
| JVM配置 | 描述 | 
|---|
| -XX:+PrintAdaptiveSizePolicy | 有关GC工程的详细信息 | 
| -XX:+PrintTenuringDistribution | 幸存者空间的使用和分配 | 
| -XX:+PrintReferenceGC | 处理引用所花费的时间 | 
3.JDK17具体的GC日志参数
| -Xlog参数\ | JVM配置 | 描述 | 
|---|
| :file=/opt/gc-%t.log | 写入 GC 日志的路径,%t表示当前时间 | 
| :filesize=104857600,filecount=5 | 启用日志分割,保留分割 GC 日志文件数+单个GC日志文件的大小<br/>超过了限制将会执行循环写入,先进先出式写入 | 
| gc* | 详细的GC日志 | 
| level,tags,time,uptime,pid | 实际日期和时间戳 与关键信息 | 
| safepoint | 应用程序在 GC 期间停止的时间量 | 
| -XX:-PrintCommandLineFlags | 打印 GC 日志中的所有命令行标志 | 
java -Xlog:gc*,safepoint:file=gc-%t.log:level,tags,time,uptime,pid:filesize=104857600,filecount=5 -jar <your_application.jar>
| -Xlog参数\ | JVM配置 | 描述 | 
|---|
| gc+ergo*=trace | 有关GC工程的详细信息 | 
| gc+age=trace | 幸存者空间的使用和分配 | 
| gc+phases*=trace | 处理引用所花费的时间 | 
java -Xlog:gc*,safepoint,gc+ergo*=trace,gc+age=trace,gc+phases*=trace:file=gc-%t.log:level,tags,time,uptime,pid:filesize=104857600,filecount=5 -jar <your_application.jar>
参考资料
- Java中的GC(垃圾回收)log ,以及 JVM 介绍_gc java命令_sun0322的博客-CSDN博客
 - Java GC算法——日志解读与分析(GC参数基础配置分析)-腾讯云开发者社区-腾讯云 (tencent.com)
 - JVM 配置GC日志_jvm打印gc日志_Coco_淳的博客-CSDN博客
 - 一篇带你搞定⭐《生产环境JVM日志配置》⭐_不学会Ⅳ的博客-CSDN博客
 
                 
评论 (0)