GC优化理解及思考

确定优化目标

明确应用程序的系统需求是性能优化的基础:
高可用,可用性达到几个9;
低延迟,请求必须多少毫秒内完成响应;
高吞吐,每秒完成多少次事务;
上述性能指标间可能冲突。比如通常情况下,缩小延迟的代价是降低吞吐量或者消耗更多的内存或者两者同时发生;

分析GC时间和频率对于系统需求的影响

如果主要关注高可用和低延迟两项指标,就需要分析如何量化GC时间和频率对于响应时间和可用性的影响。通过这个量化指标,可以计算出当前GC情况对服务的影响,也能评估出GC优化后对响应时间的收益,这两点对于低延迟服务很重要。

优化

通过收集GC信息,结合系统需求,确定优化方案,例如选用合适的GC回收器、重新设置内存比例、调整JVM参数等。

进行调整后,将不同的优化方案分别应用到多台机器上,然后比较这些机器上GC的性能差异,有针对性的做出选择,再通过不断的试验和观察,找到最合适的参数。

验收优化结果

将最优方案应用到所有服务器,判断优化结果是否符合预期,总结相关经验。