GC调优思路

调优一定是针对特定场景、特定目标做的事情。

GC调优来说,首先就需要清除调优目标是什么?

从性能角度看,通常关注三个方面,内存占用(footprint)、延时(latency)和吞吐量(throughput),大多数情况调优会侧重于其中一个或者两个方面的目标,很少可以兼顾三个角度)。

除了以上通常三方面,也可能需要考虑其他GC场景,如,OOM也可能与不合理的GC相关参数有关;或者,应用启动速度方面的需求。

调优思路:

  1. 理解应用需求和问题,确定调优目标。假设,应用哦偶尔出现性能抖动,出现较长时间服务停顿。评估用户可以接受的响应时间和业务量,将目标简化为,希望GC暂停尽量控制在200ms内,并且保证一定标准的吞吐量
  2. 掌握JVM和GC状态,定位具体问题,确定真的有GC调优的必要。通过工具jstat查看GC等相关状态,可以开启GC日志,或者是利用操作系统诊断工具等。例如,通过追踪GC日志,可以查找是不是GC在特定时间发生了长时间的暂停,进而导致了应用相应不及时。
  3. 考虑GC的类型是否符合应用的特征。如果符合,考虑是哪个阶段GC存在问题,若不符合,应切换到那种模式?
  4. 通过分析确定需调整的参数或者硬件配置
  5. 验证是否达到调优目标,达到则结束,未达到,则重复分析,调优,验证的过程。

 

 

GC Stop-The-World

 

相关文章:

https://www.cnblogs.com/fmys/p/9912154.html

posted @ 2019-06-08 08:49  vvf  阅读(510)  评论(0)    收藏  举报