一、现状
在性能测试一开始就针对全接口全场景进行性能压测并调优,如果再加上对业务代码不熟悉,基本上就是熟悉的尴尬场景:
- 阶梯递增并发线程数获得服务性能拐点
- 调整服务端数据库连接池配置
- 调整JVM中新生代老年代等配置
- 优化监控获得的慢sql语句
- 利用工具分析线程堆栈信息
不了解业务逻辑,不了解具体代码实现,基本上这些招数使用后对于性能优化就毫无头绪且无能为力了
接下来看看调优从开始准备到调优完成整个流程中更为有针对性的方式,需要在调优前更加充分的准备,更加深入的分析业务实现代码,且提前预估性能风险点,有利于接下来的性能优化
二、 功能模块
需要熟悉该接口实现的业务功能模块,入参出参以及代表的业务逻辑
三、业务代码
3.1 目的
- 风险提前暴露
- 接口性能大概评估
- 测试场景的设计
3.2 聚焦点
- sql或外部接口重复调用
同一个信息在不同的地方重复查询 - sql索引命中
索引的规则优化 - 设计缺陷风险
redis穿透
循环嵌套是否合理for for循环