首页 > 其他分享 >G1 部分知识内容

G1 部分知识内容

时间:2023-02-20 23:25:28浏览次数:22  
标签:G1 收集器 知识 XX GC 垃圾 内容 参数

https://gceasy.io/

https://www.bbsmax.com/A/GBJrkv3B50/

常用JVM参数

参数描述
-XX:+AlwaysPreTouch JVM启动时分配内存,堆的每个页面都在初始化期间按需置零,而不是在应用程序执行期间递增
-XX:Errorfile = filename 错误日志
-XX:+TraceClassLoading 跟踪类加载信息
-XX:+PrintClassHistogram 按下Ctrl+Break后打印类信息
-Xmx -Xms 最大堆 最小堆
-xx:permSize 永久代大小
-xx:metaspaceSize 元数据空间大小
-XX:+HeapDumpOnOutOfMemoryError 当抛出OOM时进行HeapDump
-XX:+HeapDumpPath OOM时堆导出的路径
-XX:OnOutOfMemoryError 当发生OOM时执行用户指定的命令

命令: java -XX:+PrintFlagsFinal -version 会 打印所有的-XX参数及其默认值

 

GC调优思路

  1. 分析场景,如:启动速度慢,偶尔出现响应慢于平均水平或出现卡顿
  2. 确定目标,如:内存占用,低延时,吞吐量
  3. 收集日志,如:通过参数配置收集GC日志,通过JDK工具查看GC状态
  4. 分析日志,如:使用工具辅助分析日志,查看GC次数,GC时间
  5. 调整参数,如:切换垃圾收集器或者调整垃圾收集器参数

常用GC参数

参数描述
-XX:ParallelGCThreads 并行GC线程数量
-XX:ConcGcThreads 并发GC线程数量
-XX:MaxGCPauseMillis 最大停顿时间,单位毫秒,GC尽力保证回收时间不超过设定值
-XX:GCTimeRatio 垃圾收集时间占总时间的比值,取值0-100,默认99,即最大允许1%的时间做GC
-XX:SurvivorRatio 设置eden区大小和survivor区大小的比例,8表示两个survivor:eden=2:8,即一个survivor占年轻代的1/10
-XX:NewRatio 新生代和老年代的比,4表示新生代:老年代=1:4,即年轻代占堆的1/5
-verbose:gc,-XX:+PrintGC 打印GC的简要信息
-XX:+PrintGCDetails 打印GC详细信息(JDK9之后不再使用)
-XX:+PrintGCTimeStamps 打印GC发生的时间戳(JDK9之后不再使用)
-Xloggc:log/gc.log 指定GC log的位置,以文件输出
-XX:PrintHeapAtGC 每次GC后都打印堆信息

垃圾收集器Parallel参数调优

Parallel垃圾收集器在JDK8中是JVM默认的垃圾收集器,它是以吞吐量优先的垃圾收集器。其可调节的参数如下:

参数描述
-XX:+UseParallelGC 新生代使用并行垃圾收集器
-XX:+UseParallelOldGC 老年代使用并行垃圾收集器
-XX:ParallelGCThreads 设置用于垃圾回收的线程数
-XX:+UseAdaptiveSizePolicy 打开自适应GC策略

垃圾收集器CMS参数调优

CMS垃圾收集器是一个响应时间优先的垃圾收集器,Parallel收集器无法满足应用程序延迟要求时再考虑使用CMS垃圾收集器,从JDK9开始CMS收集器已不建议使用,默认用的是G1垃圾收集器。

参数描述
-XX:+UseConcMarkSweepGC 新生代使用并行收集器,老年代使用CMS+串行收集器
-XX:+UseParNewGC 新生代使用并行收集器,老年代CMS收集器默认开启
-XX:CMSInitiatingOccupanyFraction 设置触发GC的阈值,默认68%,如果内存预留空间不够,就会引起concurrent mode failure
-XX:+UseCMSCompactAtFullCollection Full GC后,进行一次整理,整理过程是独占的,会引起停顿时间变长
-XX:+CMSFullGCsBeforeCompaction 设置进行几次Full GC后进行一次碎片整理
-XX:+CMSClassUnloadingEnabled 允许对类元数据进行回收
-XX:+UseCMSInitiatingOccupanyOnly 表示只在达到阈值的时候才进行CMS回收
-XX:+CMSIncrementalMode 使用增量模式,比较适合单CPU

垃圾收集器G1参数调优

G1收集器是一个兼顾吞吐量和响应时间的收集器,如果是大堆(如堆的大小超过6GB),堆的使用率超过50%,GC延迟要求稳定且可预测的低于0.5秒,建议使用G1收集器。

参数描述
-XX:G1HeapRegionSize 设置Region大小,默认heap/2000
-XX:G1MixedGCLiveThresholdPercent 老年代依靠Mixed GC, 触发阈值
-XX:G1OldSetRegionThresholdPercent 定多包含在一次Mixed GC中的Region比例
-XX:+ClassUnloadingWithConcurrentMark G1增加默认开启,在并发标记阶段结束后,JVM即进行类型卸载
-XX:G1NewSizePercent 新生代的最小比例
-XX:G1MaxNewSizePercent 新生代的最大比列
-XX:G1MixedGCCountTraget Mixed GC数量控制

调优示例

标签:G1,收集器,知识,XX,GC,垃圾,内容,参数
From: https://www.cnblogs.com/fating/p/17139384.html

相关文章