(转) 如何优化生产环境的Full GC?

1. 如何优化每次Full GC的性能?

就是把每次Full GC时间进一步降低。

  • -XX:+CMSParallelInitialMarkEnabled,会在CMS的“初始标记”阶段开启多线程并发执行 初始标记阶段,会STW,该阶段开启多线程并发后,可尽可能优化该阶段性能,减少STW时间。
  • -XX:+CMSScavengeBeforeRemark 在CMS重新标记阶段前,先尽量执行一次YGC

这样做有什么作用呢?

CMS重新标记也会STW,所以重新标记前,先执行一次YGC,就会回收掉一些年轻代里无人引用的对象。

所以若提前回收掉一些对象,在CMS重新标记阶段就能少扫描一些对象,这就提升CMS重新标记阶段的性能。

-Xms4096M -Xmx4096M -Xmn3072M -Xss1M 
-XX:PermSize=256M
-XX:MaxPermSize=256M
-XX:+UseParNewGC 
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFaction=92 
-XX:+UseCMSCompactAtFullCollection 
-XX:CMSFullGCsBeforeCompaction=0 
-XX:+CMSParallelInitialMarkEnabled 
-XX:+CMSScavengeBeforeRemark

如何优化生产环境的Full GC? - 云+社区 - 腾讯云 (tencent.com)

posted @ 2022-03-06 21:26  littlevigra  阅读(86)  评论(0编辑  收藏  举报