RPS 与并发口径是什么
RPS(每秒请求数)与并发是两种负载口径:闭环(固定并发)下 RPS 随响应时间变化,开环(固定到达率)才能精确控制负载强度;选哪种取决于要回答的问题。用并发数横向对比不同系统的吞吐、或把闭环变慢误读为「扛住了」,都是常见误判。
基本信息
| 换算关系 | 平均并发 = 到达率 × 平均响应时间(利特尔法则) |
|---|---|
| 闭环模型 | 固定并发:响应变慢时发起速率自动下降 |
| 开环模型 | 固定到达率:精确控制压力强度 |
| 工具对应 | k6 的执行器两种模型均可选;JMeter 线程组属闭环 |
| 选型建议 | 验证 SLO 与容量偏开环,观察资源与排队可闭环 |
换算关系(利特尔法则)
换算关系(利特尔法则)
# 平均并发 = 到达率 RPS x 平均响应时间(秒)
# 示例:200 RPS x 0.1s = 20 并发
# 注意:只对稳定状态成立,加压与卸载阶段会失真两种模型对照
| 模型 | 控制变量 | 适用问题 | 注意 |
|---|---|---|---|
| 闭环 | 并发数 | 资源占用与排队行为 | 变慢会降低到达率 |
| 开环 | 到达率 | SLO 与容量验证 | 防重试放大实际压力 |
典型使用场景
- 容量测试:用开环推算「每分钟多少订单」的承受上限。
- SLO 验证:按承诺到达率加压,看分位是否达标。
- 资源画像:闭环下观察固定并发时的资源与排队。
- 方案对比:统一换算到 RPS 口径后横向比较。
- 脚本准备:开环模式配置数据池,避免重试掩盖问题。
- 报告说明:标注模型与口径,读者才不会误读。
k6 的执行器区分 open model(如 ramping-arrival-rate)与 closed model(如 constant-vus),JMeter 线程组属于闭环模型。
利特尔法则只对稳定状态成立:加压与卸载阶段用瞬时并发换算 RPS 会失真。
闭环模型下系统变慢会自动降低发起速率,曲线看起来「稳住了」,实际是压力没打到位。