MaxTenuringThreshold调优明显减少系统FGC次数(线上JVM排查之七)

本文介绍了由于MaxTenuringThreshold设置不当导致线上服务频繁发生Full GC的问题。通过调整这一参数,可以避免年轻代对象过早晋升至年老代,从而降低FGC频率,提升系统性能。分析了官方建议,并展示了调整后的FGC次数对比,显示优化效果显著。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:因为MaxTenuringThreshold设置不合理,导致年轻代的对象很快进入年老代,导致年老代FGC频率增加,进而影响系统性能。

线上某服务一直存在FGC比较严重的情况,排查下来是MaxTenuringThreshold=3.

当一个对象在新生代中经历过Minor GC之后对象的年龄就+1,原来0岁此时就变为1了,当再经历一次回收之后依然没有被回收则年龄就变为2,而我们给这参数设置的最大参数为3,假如对象的年龄变为4超些我们设置的最大的这个3时,该对象就会从新生代晋升到老年代当中。

.看Oracle官方的说明:

Do Not Set -XX:MaxTenuringThreshold to a Value Greater Than 15

Last updated on APRIL 18, 2021

APPLIES TO:
Java SE JDK and JRE - Version 1.5.0 and later
Information in this document applies to any platform.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值