G1GC调优时遇到的坑

发布时间:2021-04-19 20:50:47阅读:(276)

近期,出于某些原因,对线上项目进行JVM调优,希望能将年轻代大小固定下来而非动态分配,于是在启动参数上增加了-Xmn=3G ,结果上达到了预定,而然在查看监控是却发现,原本程序gc的STW时间只需要30ms左右,加完这个参数后却达到了300ms,相差近10倍,这是一个很严重的问题了

于是我去查了oracle关于g1相关的文档,终于找到了答案:

评估和微调 G1 GC 时,请记住以下建议:
年轻代大小:避免使用 -Xmn 选项或 -XX:NewRatio 等其他相关选项显式设置年轻代大小。固定年轻代的大小会覆盖暂停时间目标。

原本参数中设置了-XX:MaxGCPauseMillis=100,由于-Xmn属性导致此参数失效了,因此STW时间也随之边长了。

所以,在对JVM没有充分了解的时候,千万得谨慎调优!!!

Oracle原文地址:Garbage First Garbage Collector Tuning

标签:gc

发表评论

评论列表(有0条评论276人围观)
暂无评论