这是我参与「第五届青训营 」伴学笔记创作活动的第5天
一、本堂课重点内容:
- 本堂课的知识要点:如何评估业务服务性能、解决性能问题以及优化项改进;最后是优化效果验证。
二、详细知识点介绍:
1.性能调优案例——业务服务优化 1.1监理服务性能评估手段 1.1.1服务性能评估方式:单独benchmark无法满足复杂无法满足复杂逻辑分析、不同负载情况下性能表现差异 1.1.2请求流量构造:不同请求参数、覆盖逻辑不同 线上真实流量情况 1.1.3压测范围:单机器压测、集群压测 1.1.4性能数据采集:单机性能数据、集群性能数据
1.2如何分析: 评估手段建立后,它的产出是一个服务的性能指标分析报告; 而实际的压测报告截图,会统计压测期间服务的各项监控指标,包括qps,延迟等内容,同时在压测过程中,也可以采集服务的pprof数据,使用之前的方式分析性能问题
1.3如何找到瓶颈: 有了服务优化前的性能报告和一些性能采样数据,我们可以进行性能瓶颈分析了 业务服务常见的性能问题可能是使用基础组件不规范 比如这里通过火焰图看出json的解析部分占用了较多的CPU资源,实际组件内部提供了缓存机制 1.4重点优化项改进 性能优化的前提是保证正确性,所以在变动较大的性能优化上线之前,还需要进行正确性验证,因为线上的场景和流程太多,所以要借助自动化手段来保证优化后程序的正确性 同样是线上请求的录制。 不过这里不仅包含请求参数录制,还会录制线上的返回内容,重放时对比线上的返回内容和优化后服务的返回内容进行正确性验证。
1.5 优化效果验证:如重复压测验证、上线评估优化效果
三、课后个人总结:
性能调优的流程很长,这里总结下重要的点 1.对于pprof工具,可以通过分析实际的程序熟悉相关功能,理解基本原理,后续能够更好地解决性韵问题 2.在真正的服务性能调优流程中,链路会很长,重点是要保证正确性,不影响功能,同时定位主要问题