full gc 调优思路

关于full gc的优化思路
方案一
增大内存
增大内存是解决full gc最快的方案之一
好处:降低了真正full gc 延迟的概率,(虽然产品每隔半小时主动full gc,但是随着内存的增大,老年代使用率在半小时内超过90%的概率就少了,就会导致每次的full gc 比较快的完成。大大降低了full gc的高延迟发生。)
坏处:当老年代用满时,做一次full gc的耗时会提升。如果在某一时刻sql查询量非常大,导致了full gc,此时单次的full gc时长就会增加。
方案二
调整full gc的间隔
调整full gc的间隔,由30min 调整为10min;缩短时间间隔,因为在正常情况下短时间内老年代的使用率超过90%的概率比较小,或者说短时间内在老年代利用率不是太高的时候就主动做一次full gc,这样虽然full gc的频次增加,但是每次full gc时垃圾回收的量降低了,这样full gc高延迟的状况也会有很大改善。

方案三
增大年轻代内存,降低老年代内存,同时控制进入老年代对象的大小
此做法可以避免大的对象过多进入老年代引发full gc,增大年轻代,减少老年代主要目的是让垃圾回收尽量的发生在年轻代,即使老年代发生full gc也能短时间恢复服务。
可以通过以下参数设置
-XX:NewSize #设置Yong Generation的初始值大小
-XX:Maxnewsize #设置Yong Generation的最大值大小
-XX:G1HeapRegionSize #增大该参数,使得巨型对象可以分布在一个region上,在垃圾回收时候不在跨region回收。
-XX:NewRatio #默认值是2,Old Generation是 Yong Generation的2倍,即Yong Generation占据内存的1/3 ,官网建议不能低于1,即 老年代和年轻代对内存大小设置一致。
-XX:PretenureSizeThreshold 直接晋升到老年代的对象大小,设置这个参数后
大于这个参数的对象将直接在老年代分配,可以通过调大这个参数,使得老年代分配较少的对象。
方案四
关闭每隔半小时自动full gc的策略,通过老年代使用占比触发full gc
关闭每隔半小时自动full gc的策略,默认情况下,当老年代的使用率超过90%才会做一次full gc,我们可以通过调低这个值来减少full gc时候回收的垃圾大小。
-XX:+UseCmsInitiatingOccupancyOnly #只根据老年代空间占用率来决定何时启动垃圾回收线程 (这个参数还有待商榷,不知道是否使用G1 )
方案五
减少停顿时间,增大垃圾回收吞吐量
停顿时间:垃圾收集器做垃圾回收中断应用执行的时间。XX:MaxGCPauseMillis #默认值是200,可以试着减半
吞吐量:垃圾收集的时间和总时间的占比:1/(1+n),吞吐量为1-1/(1+n)。-XX:GCTimeRatio=n

-XX:ParallelGCThreads:指定GC工作的线程数量

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容

  • 概览 JVM 的静态架构 JVM 中和性能相关的关键组件包括: JIT Compiler (Just-in-tim...
    skeeey阅读 621评论 0 1
  • 内容主要如下: GC 基础原理,涉及调优目标,GC 事件分类、JVM 内存分配策略、GC 日志分析等。 CMS 原...
    猿小将阅读 445评论 0 0
  • 概述 本文介绍GC基础原理和理论,GC调优方法思路和方法,基于Hotspot jdk1.8,学习之后将了解如何对生...
    caison阅读 1,432评论 1 2
  • 转发于:https://mp.weixin.qq.com/s/sa0j5gQ08luTicTpZW_Cyg“ 本文...
    无色的叶阅读 572评论 0 7
  • 本文介绍 GC 基础原理和理论,GC 调优方法思路和方法,基于 Hotspot jdk1.8,学习之后你将了解如何...
    AnyL8023阅读 287评论 0 1