2. 性能指标详解:TPS、QPS、响应时间、并发用户数、吞吐量、资源利用率等核心指标
性能指标是压力测试的“仪表盘”。不理解指标的含义,就无法判断系统是否健康。本章将逐一拆解压力测试中最核心的六大指标,厘清它们之间的区别与联系,并给出实战中的参考标准。
2.1 指标全景图:从用户请求到系统资源
在深入每个指标之前,先通过一张全景图建立整体认知。一次完整的用户请求,从发出到结束,会经历“负载产生 → 排队等待 → 服务处理 → 资源消耗”四个阶段,每个阶段都有对应的核心指标。
💡 学习提示: 不要孤立地记忆每个指标。理解指标之间的因果关系(例如:并发用户数增加 → 响应时间变长 → TPS 达到拐点 → 资源利用率饱和),才是性能分析的核心能力。
2.2 核心指标详解
2.2.1 TPS(Transactions Per Second)与 QPS(Queries Per Second)
TPS 是每秒完成的事务数,QPS 是每秒完成的查询数。两者是衡量系统处理能力最直接的指标。
| 对比维度 | TPS(事务/秒) | QPS(查询/秒) |
|---|---|---|
| 定义 | 一个完整业务操作(如:下单、支付) | 一次查询请求(如:查询商品列表) |
| 包含关系 | 1 个事务可能包含多个查询 | 多个 QPS 组成 1 个 TPS |
| 典型场景 | 电商下单、银行转账、支付流程 | 搜索引擎、数据库查询、API 调用 |
| 关注重点 | 业务成功率与完整性 | 查询速度与并发能力 |
⚠️ 常见误区: 很多测试报告将 TPS 和 QPS 混用。在微服务架构中,一个前端请求可能触发后端 5~10 次内部调用。如果只统计网关层的 QPS,会严重高估系统的实际业务处理能力。建议:对外报告用 TPS,对内调优用 QPS。
2.2.2 响应时间(Response Time, RT)
响应时间是从用户发出请求到收到完整响应所经过的总时间。它直接决定了用户体验的好坏。
- 组成公式: 响应时间 = 网络传输时间 + 排队等待时间 + 服务处理时间 + 数据返回时间
- 关键分位值:
- Avg(平均响应时间): 容易受极端值影响,参考价值有限。
- TP90 / TP95 / TP99: 分别表示 90%/95%/99% 的请求在多少毫秒内完成。TP99 是 SLA 的核心指标。
- Max(最大响应时间): 通常由慢查询或 GC 引起,需要单独分析。
📊 实战参考标准:
· 互联网前端页面:TP99 < 2s
· 内部 API 接口:TP99 < 500ms
· 数据库查询:TP99 < 200ms
· 实时交易系统:TP99 < 100ms
· 互联网前端页面:TP99 < 2s
· 内部 API 接口:TP99 < 500ms
· 数据库查询:TP99 < 200ms
· 实时交易系统:TP99 < 100ms
2.2.3 并发用户数(Concurrent Users / VU)
并发用户数是指同一时间段内,同时向系统发起请求的虚拟用户数量。注意区分“并发用户数”和“在线用户数”:
| 概念 | 定义 | 举例 |
|---|---|---|
| 在线用户数 | 登录系统但可能没有操作的用户 | 10000 人登录了 App,但只有 200 人在浏览商品 |
| 并发用户数 | 同一时刻正在发送请求的用户 | 200 人同时点击“加入购物车” |
Little's Law(利特尔法则): 并发用户数 = TPS × 平均响应时间。这是性能测试中最基础的数学关系。例如:系统 TPS 为 100,平均响应时间为 0.5s,则维持该吞吐量所需的并发用户数为 50。
2.2.4 吞吐量(Throughput)
吞吐量是单位时间内系统成功处理的请求总量。常见的单位有:
- 请求数/秒(RPS): 适用于 HTTP 接口测试。
- 字节数/秒(Bytes/s): 适用于文件传输、流媒体场景。
- 业务数/秒: 适用于特定业务场景(如:订单数/秒)。
吞吐量与 TPS 的区别:TPS 强调“事务”的完整性(成功才算),吞吐量更强调“数据量”或“请求量”的通过能力。
2.2.5 资源利用率(Resource Utilization)
资源利用率反映了系统硬件或软件资源被消耗的程度。当资源利用率接近 100% 时,通常意味着系统出现了瓶颈。
| 资源类型 | 健康范围 | 危险信号 | 常见瓶颈原因 |
|---|---|---|---|
| CPU | 70% ~ 80% | > 90% 持续波动 | 死循环、频繁 GC、计算密集型任务 |
| 内存 | 使用率 < 80% | 持续增长不释放、频繁 Full GC | 内存泄漏、大对象分配、缓存膨胀 |
| 磁盘 I/O | 平均队列长度 < 2 | await > 50ms、%util > 90% | 日志写入过猛、慢查询、索引缺失 |
| 网络 | 带宽使用率 < 70% | 丢包率 > 0.1%、重传率 > 1% | 带宽不足、连接数超限、DNS 解析慢 |
2.3 指标之间的联动关系
单一指标无法定位问题。性能分析的核心是观察指标之间的“联动变化”。下面这张图展示了压力增加时,各指标的典型变化曲线:
2.4 实战:如何选择核心指标
不同角色的关注点不同。在制定测试方案时,建议按以下优先级选择指标:
- 业务方 / 产品经理: 关注 TPS(业务处理能力)和 TP99 响应时间(用户体验)。
- 开发工程师: 关注 QPS(接口性能)、错误率、慢查询日志。
- 运维 / DBA: 关注 CPU 利用率、内存使用率、磁盘 I/O、网络带宽。
- 测试工程师: 需要同时关注以上所有指标,并建立指标之间的关联分析。
📋 测试报告模板(最小集):
· 测试场景描述
· 并发用户数梯度(如:10 → 50 → 100 → 200)
· 每个梯度下的 TPS、TP99、错误率、CPU 峰值
· 瓶颈点分析(哪个指标先达到阈值)
· 结论:系统最大支撑并发数及对应的 TPS
· 测试场景描述
· 并发用户数梯度(如:10 → 50 → 100 → 200)
· 每个梯度下的 TPS、TP99、错误率、CPU 峰值
· 瓶颈点分析(哪个指标先达到阈值)
· 结论:系统最大支撑并发数及对应的 TPS
2.5 本章小结
- TPS/QPS 是系统的“速度表”,衡量处理能力。
- 响应时间 是用户的“体验表”,重点关注 TP99。
- 并发用户数 是施加的“负载”,通过 Little's Law 与 TPS 和 RT 关联。
- 吞吐量 是系统的“容量”,与 TPS 互补使用。
- 资源利用率 是系统的“健康表”,CPU 和内存是首要监控对象。
- 性能分析不是看单一指标,而是观察指标之间的联动变化,找到“拐点”。