一、为什么要打印GC日志?
当服务出现内存飙高、卡顿宕机等等情况,有可能因为GC问题,所以要有日志进行排查。
二、命令详解
#打印GC详情信息
-XX:+PrintGCDetails
#打印GC时间戳
-XX:+PrintGCDateStamps
#打印触发GC原因信息
-XX:+PrintGCCause
#日志存放路径
-Xloggc:d:/gslog/qms/gc-%t.log
#开启日志文件分隔
-XX:+UseGCLogFileRotation
#最多分割几个文件,超过之后从头开始写
-XX:NumberOfGCLogFiles=5
#每个文件大小
-XX:GCLogFileSize=20M
三、Windos配置GC日志步骤
1、
2、
3、
4、复制日志命令在VM Options即可
5、linux启动Java命令,堆内存大小根据自己内存设定
参数说明:OOM参数说明
1、-XX:+HeapDumpOnOutOfMemoryError:参数表示当JVM发生OOM时,自动生成DUMP文件
2、-XX:HeapDumpPath= 目录:参数表示生成 D U M P 文件的路径,也可以指定文件名称,例如: − X X : H e a p D u m p P a t h = {目录}:参数表示生成DUMP文件的路径,也可以指定文件名称,例如:-XX:HeapDumpPath= 目录:参数表示生成DUMP文件的路径,也可以指定文件名称,例如:−XX:HeapDumpPath={目录}/java_heapdump.hprof。如果不指定文件名,默认为:java_
启动命令文章来源:https://www.toymoban.com/news/detail-786264.html
#推最大内存
-Xmx1024m
#堆最小内存
-Xms1024m
#使用G1垃圾收集器 ps:JDK1.8后都建议可以使用G1
-XX:+UseG1GC
#开启代码中手动调用System.gc()就不会生效
-XX:+DisableExplicitGC
#打印GC日志详情
-XX:+PrintGCDetails
#打印GC时间戳
-XX:+PrintGCDateStamps
#打印GC堆信息
-XX:+PrintHeapAtGC
#打印触发GC原因
-XX:+PrintGCCause
#导出GC日志路径
-Xloggc:d:/xxx/xxx/gc-%t.log
#开启日志文件分隔
-XX:+UseGCLogFileRotation
#最多分割几个文件,超过之后从头开始写
-XX:NumberOfGCLogFiles=5
#每个日志文件的大小
-XX:GCLogFileSize=50M
#当JVM发生OOM时,自动生成DUMP文件
-XX:+HeapDumpOnOutOfMemoryError
#生成DUMP文件的文件路径
-XX:HeapDumpPath=${D:\gslog\oomlog}
nohup java -Xmx1024m -Xms1024m -XX:+UseG1GC -XX:+DisableExplicitGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+PrintGCCause -Xloggc:d:/gslog/qms/gc-%t.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=50M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${D:\gslog\oomlog} -jar qms-admin.jar &
四、GC日志讲解
日志讲解
文章来源地址https://www.toymoban.com/news/detail-786264.html
到了这里,关于JAVA-GC日志打印配置详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!