日志参数
参数 | 说明 |
---|---|
-XX:+PrintGC | 打印简单gc日志 |
-XX:+PrintGCDetail | 打印GC详细信息 |
-XX:+PrintGCTimeStamps | 输出GC的时间戳(基准时间的形式) |
-XX:PrintGCDateStamps | 输出GC时间戳(以日期格式) |
-XX:PrintHeapAtGC | 在GC前后打印堆的信息 |
-Xloggc:…/logs/gc.log | 指定gc日志路径 |
常用垃圾收集器参数
参数 | 含义 |
---|---|
UseSerialGC | Serial+Serial Old组合收集(client模式下默认) |
UseParNew | ParNew+Serial Old |
UseConcMarkSweepGC | ParNew + CMS + Serial Old CMS 出现Concurrent Mode Failure后用Serial Old做为备用收集器 |
UseParallelOldGC | 使用Parallel Scavenge + Parallel Old |
UseParallelGC | Parallel Scavenge+Serial Old(PS MarkSweep) |
SurvivorRation | Eden和任何一个Survivor区域的比值,默认8 |
PretenureSizeThreshold | 直接晋升老年代对象大小(Byte) |
UseAdaptiveSizePolicy | 动态调整java堆中各区域的大小以及进入老年代的年龄 |
ParallelGCThreads | 并行GC时GC线程数 |
GCTimeRation | GC 时间占总时间的比率,默认值为99,只在 Parallel Scavenge 收集器的时候生效 |
MaxGCPauseMillis | 设置 GC 最大的停顿时间,只在 Parallel Scavenge收集器的时候生效 |
CMSInitiatingOccupancyFraction | 设置 CMS 收集器在老年代空间被使用多少后触发垃圾收集,默认是68%,仅在 CMS 收集器上生效 |
CMSFullGCsBeforeCompaction | 设置 CMS 收集器在进行多少次垃圾回收之后启动一次内存碎片整理 |
UseG1GC | 使用 G1 (Garbage First) 垃圾收集器 |
MaxGCPauseMillis | 设置最大GC停顿时间(GC pause time)指标(target). 这是一个软性指标(sox goal), JVM 会尽量去达成这个目标 |
G1HeapRegionSize | 使用G1时Java堆会被分为大小统一的的区(region)。此参数可以指定每个heap区的大小. 默认值将根据 heap size 算出最优解. 最小值为 1Mb, 最大值为 32Mb |
GC日志含义
[GC (Allocation Failure) [ParNew: 648619K->19157K(707840K), 0.0738982 secs] 737259K->108378K(2018560K), 0.0740699 secs] [Times: user=0.20 sys=0.00, real=0.07 secs]
日志记录 | 含义 |
---|---|
GC | GC/fullGC |
Allocation Failure | gc原因 |
ParNew | 垃圾回收区域(年轻代) |
648619K | 回收前内存大小(年轻代) |
19157K | 回收后内存占用大小 |
707840K | 总的内存大小 |
0.0738982 | 回收占用时间 |
737259K | 回收前总堆占用大小(年轻代+老年代) |
108378K | 回收后总堆占用大小(年轻代+老年代) |
2018560K | 总堆大小(年轻代+老年代) |
0.0740699 | 总的回收时间 |
user=0.20 | 用户态消耗cpu时间 |
sys=0.00 | 内核态消耗cpu时间 |
real=0.07 | 整个GC从开始到结束的墙钟时间(Wall Clock Time) |