性能调优案例
简介
介绍实际业务服务性能优化的案例
对逻辑相对复杂的程序如何进行性能调优
业务服务优化
基本概念
服务:能单独部署,承载一定功能的程序
依赖:Service A的功能实现依赖,Service B的响应结果,称为Service A依赖Service B
调用链路:能支持一个接口请求的相关服务集合及其相互之间的依赖关系
基础库:公共的工具包、中间件
流程
建立服务性能评估手段
分析性能数据,定位性能瓶颈
重点优化项改造
优化效果验证
建立服务性能评估手段
服务性能评估方式
单独benchmark无法满足复杂逻辑分析
不同负载情况下性能表现差异
请求流量构造
不同请求参数覆盖逻辑不同
线上真实流量情况
压测范围
单机器压测
集群压测
性能数据采集
单机性能数据
集群性能数据
分析性能数据,定位性能瓶颈
使用库不规范
高并发场景优化不足
高峰期性能数据
低峰期性能数据
重点优化项改造
正确性是基础
响应数据diff
线上请求数据录制回放
新旧逻辑接口数据diff
优化效果验证
重复压测验证
上线评估优化效果
关注服务监控
逐步放量
收集性能数据
进一步优化,服务整体链路分析
规范上游服务调用接口,明确场景需求
分析链路,通过业务流程优化提升服务性能
基础库优化
AB实验SDK的优化
分析基础库核心逻辑和性能瓶颈
设计完善改造方案
数据按需获取
数据序列化协议优化
内部压测验证
推广业务服务落地验证
go语言优化
编译器&运行时优化
优化内存分配策略
优化代码编译流程,生成更高效的程序
内部压测验证
推广业务服务落地验证
优点
接入简单,只需要调整编译配置
通用性强