3. 容量压测基础:压测目标、压测类型与关键指标

容量压测是SLO反推水位口径的实践起点。没有准确的压测数据,任何容量模型都是空中楼阁。本节从压测的目标出发,厘清三种核心压测类型的差异,并定义后续反推口径所需的三个关键指标:QPS、RT、Error Rate。

3.1 压测的三大目标

在SRE语境下,压测不是为了“压垮系统”,而是为了回答三个问题:

目标 核心问题 与SLO的关联
发现容量天花板 系统在SLO达标的前提下,能承受的最大负载是多少? 直接决定SLO的容量边界
验证弹性策略 当负载超过阈值时,自动扩缩容/限流/降级是否按预期生效? 影响SLO的恢复时间目标
校准资源模型 CPU/内存/网络与QPS之间的换算系数是否与生产一致? 支撑SLO反推的水位口径
SRE实践提示: 压测目标必须与SLO绑定。例如“在99%请求RT ≤ 200ms的条件下,单机最大QPS为800”——这才是可反推容量的有效压测结论。

3.2 三种核心压测类型

根据测试目的不同,容量压测分为以下三类。在实际项目中,通常按负载→压力→耐久的顺序执行。

类型 目的 负载模式 持续时间 典型场景
负载测试 验证系统在预期正常负载下的SLO达标情况 阶梯递增至目标QPS 5–15分钟 日常峰值、大促预估
压力测试 找到系统崩溃点或SLO拐点 持续递增直至过载 10–30分钟 容量摸底、限流阈值标定
耐久测试 验证系统在持续负载下的稳定性(内存泄漏、GC抖动) 恒定高负载(70%–80%上限) 数小时至数天 长连接服务、批处理系统
常见误区: 很多团队只做“压力测试”而跳过“负载测试”,导致压测结论只有“最大QPS”却没有“SLO达标QPS”。后者才是反推容量的有效口径。
三种压测类型负载曲线对比 三种压测类型负载曲线对比 时间 负载 (QPS) 负载测试(阶梯递增) 压力测试(持续递增) 耐久测试(恒定高负载) 负载测试 压力测试 耐久测试

3.3 关键压测指标:QPS / RT / Error Rate

所有压测结果最终都要收敛到三个指标上。这三个指标也是后续SLO反推水位口径的输入变量。

3.3.1 QPS(Queries Per Second)

  • 定义: 每秒成功处理的请求数。
  • 压测中的角色: 负载强度的直接度量,是容量规划的“流速”单位。
  • 注意: 区分发送QPS(压测工具发出的请求数)与成功QPS(服务端返回2xx/成功的请求数)。反推容量时使用成功QPS。

3.3.2 RT(Response Time)

  • 定义: 从发送请求到收到完整响应的时间,通常关注P50、P95、P99。
  • 压测中的角色: 系统压力的“温度计”。RT开始显著上升,通常意味着接近容量拐点。
  • 与SLO的关系: 容量压测的“达标”标准就是RT满足SLO阈值(如P99 ≤ 200ms)。

3.3.3 Error Rate(错误率)

  • 定义: 错误请求数 / 总请求数 × 100%。
  • 压测中的角色: 系统健康的“红线”。错误率超过SLO阈值(如0.1%)即判定为压测失败。
  • 常见错误类型: 超时、5xx、限流拒绝、连接池耗尽。
指标 单位 压测中的典型拐点信号 对SLO反推的影响
QPS req/s 增长曲线变平(系统已达上限) 确定容量天花板
RT (P99) ms 从平稳区进入陡增区 确定SLO达标边界
Error Rate % 从0%跳变到非零值 确定SLO失效点
反推口径核心公式(预告):
容量水位 = 压测达标QPS × 资源冗余系数
其中“压测达标QPS”就是RT和Error Rate同时满足SLO阈值时的最大QPS。
压测三指标典型曲线关系 压测三指标典型曲线关系 负载 (QPS) 指标值 QPS(理想线性) RT(拐点后陡增) Error Rate(跳变) 容量拐点 QPS RT Error Rate

3.4 压测指标与SLO反推的衔接

压测结束后,我们得到一组三元组数据:(QPS_max, RT_p99, ErrorRate)。其中只有满足 RT_p99 ≤ SLO_RT 且 ErrorRate ≤ SLO_ErrorRate 的 QPS_max,才能作为后续反推容量的基准水位。

压测结论示例:
压测类型: 负载测试
SLO约束: P99 RT ≤ 200ms, Error Rate ≤ 0.1%
压测结果:
  - 达标最大QPS: 1200 req/s (P99 RT=185ms, Error Rate=0.02%)
  - 临界QPS: 1400 req/s (P99 RT=320ms, Error Rate=0.5%)
结论: 基准水位 = 1200 req/s