java虚拟机日志跟踪相关设置

 

GC详细日志简要分析:
2023-01-17T14:16:23.810+0800: 10233.942: [GC (Allocation Failure)
2023-01-17T14:16:23.810+0800: 10233.942: [DefNew: 70396K->439K(78720K), 0.0012171 secs] 144598K->74642K(253504K), 0.0013205 secs]
[Times: user=0.00 sys=0.00, real=0.00 secs]

2023-01-17T14:16:23.810:GC事件开始的时间点
+0800:代表正8时区
10233.942:GC事件相对于JVM启动时间的间隔,单位是秒
GC (Allocation Failure):用来区分Minor GC还是Full GC的标志。GC表明这是一次小型GC(Minor GC)即年轻代GC
Allocation Failure:表示触发GC的原因。本次GC事件,是由于对象分配失败,年轻代中没有空间来存放新生成的对象引起的
DefNew:是Serial收集器的标识。它进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集结束
70396K->439K(78720K):GC前年轻代使用了70396K内存,GC后年轻代使用了439K内存,78720K表示年轻代总的内存大小
0.0012171 secs:本次GC耗时,单位s
144598K->74642K(253504K):GC前堆内存的使用量144598K,GC后堆内存使用74642K,堆总内存为253504K。
0.0013205 secs:本次GC耗时,单位s
user:所有 GC线程消耗的CPU时间
sys:系统调用和系统等待事件消耗的时间
real:则表示应用程序暂停的时间

可推出:
GC前后年轻代内存使用率为:89.42% -> 0.55%     使用量减少 70396-439=69957K
GC前后堆内存使用率为:57% -> 29.4%            使用量减少 144598-74642 = 69956K    GC一次后由年轻代转换为老年代为69957-69956 = 1k
GC前老年代使用量:144598 - 70396 = 74202K
GC后老年代使用量:74642 - 439 = 74203K
应用程序由于GC而产生的停顿时间说明:
2023-01-17T16:58:30.641+0800: 704.791: Total time for which application threads were stopped: 0.0002828 seconds, Stopping threads took: 0.0000628 seconds
停止应用程序线程的总时间: 0.0002828秒,停止线程的时间: 0.0000628秒

 

参数 说明
-XX:+PrintGC 简单打印GC日志
-XX:+PrintGCDetails 详细打印GC日志
-XX:+PrintHeapAtGC 打印全面的Java堆信息
-XX:+PrintGCTimeStamps GC发生时,额外输出GC发生的时间,该输出时间为虚拟机启动后的时间偏移量
-XX:+PrintGCDateStamps GC发生时,带时区的日期打印
-XX:+PrintGCApplicationConcurrentTime 打印应用程序的执行时间
-XX:+PrintGCApplicationStoppedTime 打印应用程序由于GC而产生的停顿时间
-XX:+PrintReferenceGC 跟踪系统内的软引用,弱引用,虚引用和Finallize队列
-Xloggc:log/gc.log 指定gc日志输出的文件路径。JDK8开始支持使用%p,%t等占位符来指定GC输出文件。分别表示进程pid和启动时间戳。例如: ./Log/gc-%p.log ./Log/gc-%t.log
-XX:+HeapDumpOnOutOfMemoryError 内存溢出时导出整个堆信息
-XX:HeapDumpPath 指定导出堆的存放路径
   
-Xms: 初始堆大小
-Xmx: 最大堆大小
-XX:NewSize=n 设置年轻代大小
-XX:NewRatio=n 设置年轻代和年老代的比值.如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4
-XX:SurvivorRatio=n 年轻代中Eden区与两个Survivor区的比值.注意Survivor区有两个.如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5
-XX:MaxPermSize=n 设置持久代大小
   
-XX:+UseSerialGC 设置串行收集器
-XX:+UseParallelGC 设置并行收集器
-XX:+UseParalledlOldGC 设置并行年老代收集器
-XX:+UseConcMarkSweepGC 设置并发收集器
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 

 











 
 
 
 

posted on 2023-01-17 17:27  各执一词  阅读(79)  评论(0编辑  收藏  举报

导航