后端通过gc。log调优JVM
一、GC日志查看
GC日志默认是关闭的,需要查看GC日志首先需要开启GC日志。
常用GC日志的配置有如下,组合以下命令,在启动时加入,就可以得到GC日志。
XX:PrintGC输出GC日志
XX:PrintGCDetails输出GC的详细日志
XX:PrintGCTimeStamps输出GC的时间戳(以基准时间的形式)
XX:PrintGCDateStamps输出GC的时间戳(以日期的形式,如20200504T21:53:59。2340800)
XX:PrintHeapAtGC在进行GC的前后打印出堆的信息
XX:GCLogFileSize日志大小
Xloggc:。。logsgc。log日志文件的输出路径
例如使用如下命令启动javaXX:PrintGCDateStampsverbose:gcXX:PrintGCDetailsXloggc:。。gc。logXX:UseGCLogFileRotationjardemo。jar
当项目启动,获取到gc。log后,可以使用GCeasy上传gc。log文件,进行分析。二、调整新生代老年代比例
分析的结果中注意到一点:新生代分配1G,使用峰值为0。93G,使用率约90;老年代分配2。1G,使用峰值为1。7G,使用率约80。也就是说老年代有部分空间没用到,能否提高利用率?
JVMmemorysize
堆的内存模型大致为新生代老年代12,能否通过增大新生代,减小老年代的方法来提高内存利用率?
JVM内存模型
例如把新生代、老年代比例设置为1:1,设置参数:XX:NewRatio1。
XX:NewRatio命令是设置Old与Yong的比例,比如值为2,也就是默认值,即OldGeneration:YongGeneration2,注意:该参数的值只能时正整数,无法使用小数,例如设置NewRatio0。5,是无法启动的。
NewRatio0。5
运行一段时间后,再看JVM内存使用
JVMmemorysize
发现内存使用率基本没有变化,但是,停顿时间有了明显的变化。系统运行了6天,调整前总停顿时间约5min30sec。
调整前总停顿时间
调整后总停顿时间约2min50sec,相较于调整前,停顿时间下降约50。
调整后总停顿时间
调整前,平均停顿时间20ms,最大停顿时间180ms。
调整前平均时间
调整后,平均停顿时间16ms,相较于调整前停顿时间下降约20,最大停顿时间140ms,下降约22。
调整后平均时间
分析原因,主要是FullGC次数减少。调整前FGC次数为6次。
调整前FGC
调整后FGC次数还不到3次,相较于调整前,FGC次数下降约50,而FGC一定会StopTheWorld,FGC次数减少,停顿时间自然会减少。
调整后FGC
为什么FGC次数会减少呢?
因为从年轻代晋升到老年代对象的数量减少了。调整前晋升数量约5MB。
调整前晋升数量
而调整后晋升数量不到2MB。
调整后晋升数量
因为年轻代增大了,可以容纳更多的对象,更多垃圾在年轻代就被回收了,所以导致晋升到老年代的对象减少,老年代对象减少导致FGC次数也减少,所以停顿时间也随之下降。
这里引出一个问题:年轻代调大后,YoungGC时间是否会增加?
答案是不会,应为YGC主要采用复制算法,耗时也集中在复制过程中,虽然年轻代增大了,但每次复制时,存活的对象数量大致不会改变,所以耗时并不会增加。
调整前YGC停顿时间集中在1040ms之间。
调整前YGC停顿时间
调整后YGC停顿时间基本不变,也是集中在1040ms之间,并且可以看到调整后YGC的最大停顿时间还下降了。
调整后YGC停顿时间
是否还能继续优化?三、调整晋升次数
过早晋升问题
比如说Old区触发的回收阈值是80,经历过一次GC之后下降到了10,这就说明Old区的70的对象存活时间其实很短,Old区大小每次GC后从1。3G回收到0。2G,也就是说回收掉了1。1G的垃圾,只有200M的活跃对象。整个Heap目前是4G,活跃对象只占了不到二十分之一。
调整后FGC
主要原因:
1、YoungEden区过小:过小的直接后果就是Eden被装满的时间变短,本应该回收的对象参与了GC并晋升,YoungGC采用的是复制算法,copying耗时远大于mark,也就是YoungGC耗时本质上就是copy的时间,没来及回收的对象增大了回收的代价,所以YoungGC时间增加,同时又无法快速释放空间,YoungGC次数也跟着增加。
2、对象太容易晋升。
解决办法:
对于第1点,上述已通过调大年轻代来解决。
对于第2点,可以继续优化,通过设置XX:MaxTenuringThreshold来设置年轻代晋升老年代的最大年龄阈值。需要注意的是XX:MaxTenuringThreshold设置的是最大阈值,也就是说有些对象没有达到阈值也会进入老年代,例如年轻代放不下的大对象。
所有的对象都在Eden区创建,当Eden区满了,那么就会触发一次YoungGC。少量有用的对象会复制到From区,年龄1。
当Eden区再次被用完,就再触发一次YoungGC,这个时候跟刚才稍稍有点区别。这次触发YoungGC后,会将Eden区与From区还在被使用的对象复制到To区,年龄1。
经过若干次YoungGC后,有些对象在From与To之间来回游荡,每游荡一次,对象的年龄1,当年龄达到From区与To区的底线(XX:MaxTenuringThreshold设置的阈值)的时候,这些家伙要是到现在还没挂掉,一起复制老年代吧。
MaxTenuringThreshold的取值范围是115,默认值是15,但CMS收集器MaxTenuringThreshold的默认值是6,但是官方文档并没有说明,为何CMS特殊是6。因此若使用CMS收集器时,可以考虑增大MaxTenuringThreshold的值。
文章来源:小道萧兮https:www。jianshu。comp7b0ef3c27a39
国务院联防联控机制县医院要守住农村居民健康重要关口两节将近,随着人员流动性增加,城市的疫情可能蔓延和扩散到农村,焦雅辉表示,随着农村疫情防控压力的增大,县医院要守住农村居民健康的重要关口。国家卫生健康委医政司司长焦雅辉农村的疫情防
1984年对越大反击,阵地条件异常艰苦,唯独一连长竟长胖了!1984年7月12日举世震惊的对越大反击拉开序幕。参战部队长期在炎热的气候下训练作战,体力消耗大,食欲不振。一线分队50的患综合疲劳症,90的患皮肤病,要坚持打好防御仗,困难是很大
他活了50岁在青楼睡30年,齐名李白杜甫,放飞了肉体却守住了灵魂诗词曲创作百花齐放的唐宋两朝,是中国古代历史上的巅峰时期。期间经济繁荣,政策开明,其题材涉及范围十分广泛,有家国情怀,有寄情山水,有兄友之情,也有女子之恋。自古才子多风流,美其名曰
人穷咱不怕,心软才可怕,人生在世,学会三个狠心我们的老辈人常说,心软做不成大事,心软不但没有福气,还很容易被人拿捏,心太软天理也不会同情,所以人生在世学会三个狠心,有一句话是这样说的,该出手时就出手。我们人类,人们都想事事顺利
三年转瞬,左脚天堂,右脚地狱大家都在熬着自己身体,硬抗这小毒毒,每个人都不容易,三年的保护,确实起到了关键作用,但放开也是必然之举,只为自由,抨击管控,不对,因为感染难受,抨击放开,更不对。面对战争,没有人有
布洛芬背后月赚24亿的大佬,努力和运气并存2022年即将结束,这一年,百业萧条,但有一个行业赚的盆满钵满,大家都清楚,就是和防疫相关的行业,基本都赚到了。但究竟赚了多少,除了老板自己,知道的的人就不多了。今天头条热榜里有条
句句扎心,影响中国企业命运的九句大实话大道至简,把简单做出力量。作者丨华商韬略出品人毕亚军贸易制裁与卡脖子,劳动力等成本优势削弱,核心技术与高端市场有待突破,市场从高增量时代转向存量博弈,国家经济仍在转型阵痛期正让中国
2600光年外!巨型行星或将被恒星吞噬,或是地球50亿年后命运防走失,电梯直达安全岛报人刘亚东A来源姿势分子knowledge作者我是个卖艺的根据天文学家的计算,我们的太阳最多还能燃烧大约50亿年,此后将步入死亡的阶段。到那个时候,太阳的外壳
就连社交王者微信,似乎也难逃商业化的命运提起微信,似乎任何分析都离不开张小龙此前所说过的种种言论。但事实证明,无论是中国最懂产品的张小龙,还是曾经作为用完即走工具的微信,在经历了多年的产品不断迭代后,曾经的初心和产品定位
卢静构建人类命运共同体破解全球公域治理赤字的中国方案随着科技进步和经济全球化的发展,全球公域不仅已经成为人类活动日益活跃的公共场所,也成为各国参与国际竞争的新战略制高点。当前,全球公域普遍面临公地悲剧加重和大国战略竞争加剧的双重困境
当下即永久宇宙最惊人的奇迹不是恒星,而是时间里的一瞬间,那个瞬间,就是现在。题记来日无方长,当下即永久。将时间摊开来看,大家当下的每一帧都是精彩的一面。故事的结局是什么或许从来都不重要,把握
秋冬季到来,这四点要多多注意,不妨来看看?秋冬季节也是多有干燥的,这个时候要多注意喝水,光喝白开水不足以预防秋燥,那么秋冬季节养生应注意哪些呢?1注意多喝水干燥的秋冬季每天通过皮肤蒸发的水分在600毫升以上,因此补水是不必
再生障碍性贫血患者能喝茶吗?经过了炎热夏季的热量消耗,秋季多少会有点体虚,因此秋季适合温补。而茶的热量非常低,维生素和纤维素含量较高,且喝茶能清油解腻,去火利尿,养生保健都离不开它。再生障碍性贫血患者能喝茶吗
预防鼻炎的几大方法鼻炎是生活中很常见的一种鼻部疾病,患上了鼻炎会给患者的健康和生活带来了极大的影响和危害。所以,在生活中不仅要及时的治疗疾病,还有做好疾病的预防措施。下面就带大家了解一下鼻炎的预防方
健康卫生小常识健康科普大赛一人身体健康,很重要的一点就是保持良好的睡眠。人一天二十四小时正常睡眠应该在八小时左右,所以说睡眠对人身体健康很重要,人在睡觉的时候一定要创造一个好的睡眠环境,卧室要保
收视率破1。5!京辽大战篮筐制胜,郭艾伦创纪录,杨鸣谈裁判尺度CBA常规赛第二轮关注度最高的京辽大战落下帷幕,最终辽篮以2分优势险胜北京首钢,取得两连胜,也送给北京首钢开局两连败。这场比赛辽篮一度处于被动,第三节被对手拉开分差,落后首钢9分,
陈式太极拳新架一路拳谱陈式太极拳新架属陈长兴传统老架系列,由陈家沟陈氏十七世祖陈发科所创。陈发科大师陈发科为近代陈式太极拳的代表人物,在北京授拳30年,在家传拳术套路的基础上创编了新一路二路,并对所创新
郭艾伦躺枪!杨毅回应不准说裁判CBA是全武行我有问题你起诉我在中国男篮与波兰队的世界杯一役中,郭艾伦三节没打完就因5次犯规被罚出场外。近日知名篮球评论员杨毅透露,CBA官方表示,不允许解说员在比赛中评价裁判的判罚。对此,杨毅回应道,FIBA
穆帅难了!罗马11后,第6轮赢球才能踢附加赛,或对阵西甲豪门本轮欧联杯,罗马在客场11战平皇家贝蒂斯,双方2回合的比赛已经踢完,罗马1平1负,假如最后和皇家贝蒂斯同分,罗马将排名对手之后。不过这个小组的情况还很复杂,假如卢多格德斯下一轮能够
雷曼时刻即将到来?世界500强瑞士信贷被传将在一个月内破产雷曼时刻是一个金融圈的恶咒十四年前,美国四大投资银行之一,有158年历史的雷曼兄弟投资银行,由于在次贷危机中出现重大亏损而宣布申请破产,两万多名员工抱着纸箱子离开大楼的情景刷遍了全
8个全方位翘臀瑜伽动作,专治臀部扁平下垂凹陷,赶紧练起来这几天突然发现自己的臀部好像下垂了,查找了一些资料才发现生完宝宝的妈妈大部分都会有这种情况出现。不知道大家有没有感受到不仅臀部下垂还伴随有腰酸背痛。今天我看到了一篇文章,学习几个动
2022卡塔尔世界杯,齐达内头顶马特拉齐的雕像将在多哈展出2006年世界杯齐达内头槌马特拉齐的画面始终为球迷们所津津乐道,早在2013年,这一幕被做成雕像展出过,但是迫于国内舆论压力,没过几天就被撤掉了。现在,这尊雕像即将再次被呈现在公众