基线回归是什么
性能基线是把「当前正常水位」固化成可对照的数据:同环境、同脚本、同数据下定期跑出的分位与吞吐。回归检测就是拿新结果对基线做相对比较——比如 p95 恶化超过两成报警——而不是背绝对值。没有基线的性能数字只能看不能用:你不知道 300 毫秒算好还是坏。
基本信息
| 基线四同 | 环境、脚本、数据规模、运行参数保持一致 |
|---|---|
| 采集节奏 | 每日夜间或每个合并批次,固定时段减少干扰 |
| 存储 | 结果 JSON 归档加趋势图,历史可回溯 |
| 判定规则 | 相对阈值为主(恶化比例),绝对阈值兜底 |
| 噪声控制 | 重复运行取中位数,避开与其他任务同机竞争 |
| 工具落点 | k6 摘要导出、JMeter 结果文件、时序库存历史指标 |
采集与判定示意
采集与判定示意
# 每晚跑基线并归档摘要(示意)
k6 run --summary-export=baseline/2026-10-13.json script.js
# 回归判定:新结果 p95 相对基线恶化超过 20% 时告警
# 连续两次以上恶化才升级为回归结论,单次波动先复跑确认典型使用场景
- 发版前后性能对照:给发布评审提供数据
- 优化验证:优化方声称提升三成,基线说了算
- 缓慢劣化发现:单次无感,趋势图一个月涨三倍
- 扩容前后验证:确认容量提升符合预期
- 环境变更评估:数据库升级、内核参数调整的影响
- 性能门禁输入:基线数据决定阈值的合理档位
对照维度与要求
| 维度 | 要求 | 原因 |
|---|---|---|
| 环境 | 同规格同网络 | 核数网络不同数字不可比 |
| 数据量 | 规模与分布一致 | 索引与缓存行为随量级变化 |
| 脚本版本 | 固定并记录 | 脚本改了对比没有意义 |
| 并发模型 | 并发与思考时间一致 | 模型变化改变系统状态 |
跨环境比数字没有意义:核数、网络、缓存命中都不同。非要跨环境,先用标定任务换算再比,并注明假设。
性能波动天然存在:百分之几的抖动很常见,判定阈值要给噪声留空间,用连续多次恶化确认回归。
基线在「脏环境」采集等于白做:同机跑着其他任务时采的基线,会把偶发特征固化成「正常水位」。