性能优化案例 | 青训营

114 阅读2分钟

性能调优案例

简介

介绍实际业务服务性能优化的案例

对逻辑相对复杂的程序如何进行性能调优

业务服务优化

基本概念

服务:能单独部署,承载一定功能的程序

依赖:Service A的功能实现依赖,Service B的响应结果,称为Service A依赖Service B

调用链路:能支持一个接口请求的相关服务集合及其相互之间的依赖关系

基础库:公共的工具包、中间件

image.png

流程

建立服务性能评估手段

分析性能数据,定位性能瓶颈

重点优化项改造

优化效果验证

建立服务性能评估手段

服务性能评估方式

单独benchmark无法满足复杂逻辑分析

不同负载情况下性能表现差异

请求流量构造

不同请求参数覆盖逻辑不同

线上真实流量情况

压测范围

单机器压测

集群压测

性能数据采集

单机性能数据

集群性能数据

image.png

image.png

分析性能数据,定位性能瓶颈

使用库不规范

image.png

image.png

image.png

高并发场景优化不足

高峰期性能数据

image.png

低峰期性能数据

image.png

重点优化项改造

正确性是基础

响应数据diff

线上请求数据录制回放

新旧逻辑接口数据diff

image.png

优化效果验证

重复压测验证

上线评估优化效果

关注服务监控

逐步放量

收集性能数据

image.png

进一步优化,服务整体链路分析

规范上游服务调用接口,明确场景需求

分析链路,通过业务流程优化提升服务性能

image.png

基础库优化

AB实验SDK的优化

分析基础库核心逻辑和性能瓶颈

设计完善改造方案

数据按需获取

数据序列化协议优化

内部压测验证

推广业务服务落地验证

image.png

go语言优化

编译器&运行时优化

优化内存分配策略

优化代码编译流程,生成更高效的程序

内部压测验证

推广业务服务落地验证

优点

接入简单,只需要调整编译配置

通用性强

image.png