反模式是什么
性能测试反模式是「做了压测却得不出可信结论」的典型做法:环境失真(空库、全冷缓存)、模型失真(流量比例与思考时间脱离真实)、度量失真(只看均值、忽略错误率)、方法失真(无基线、单次定论)。识别这些坑,比多买压测机更能提升结论质量。
基本信息
| 环境失真 | 测试库是空表、缓存全冷或全热,与线上数据量差几个数量级 |
|---|---|
| 模型失真 | 给所有接口均压,偏离真实调用比例与思考时间 |
| 度量失真 | 只报 TPS 与均值,不报错误率、分位与资源曲线 |
| 方法失真 | 不设基线、不重复运行,一次结果直接下结论 |
| 资源盲区 | 压测机的 CPU、带宽、端口先饱和,测的不是系统上限 |
| 结果管理 | 脚本版本、数据规模、运行参数不归档,无法复现 |
典型使用场景
- 评审压测方案:按清单逐项核对再开工
- 复盘结论被推翻的案例:找出当时哪个环节失真
- 新人培训:先立起「条件先行」的意识再学工具
- 评估外部压测报告:检查环境、模型、度量三项是否说清
- 把清单变成前置检查项,固化进压测开工流程
反模式与后果
| 反模式 | 后果 | 修法 |
|---|---|---|
| 只看均值 | 尖峰被掩盖,用户侧投诉部门先发现 | 报 p95 与 p99 分位 |
| 无思考时间 | 瞬时洪峰被当常态,容量虚高 | 按真实节奏建模 |
| 数据量悬殊 | 索引与缓存行为完全不同 | 按线上规模灌数 |
| 压测同机部署 | 压测机与被测服务互相抢资源 | 独立压测机与网络 |
| 无基线对照 | 数字无法解释好坏 | 先跑基线再谈优化 |
结论必须带条件:脚本版本、数据规模、环境配置、并发模型缺一不可,缺了就无法复现,也无法与下次对比。
生产环境压测要先评估写操作的影响面:优先只读影子流量或隔离环境,避免压测数据污染真实业务。
错误率上升时吞吐上涨不是成绩:超过拐点后的「吞吐」多半是快速失败堆出来的数字。