4. 关键性能指标(KPI)识别:吞吐量、响应时间、并发用户数、错误率、资源利用率等核心指标
性能测试的核心在于通过可量化的指标来评估系统是否满足预设的服务水平目标。本章将深入解析压力测试中必须关注的五大核心KPI,帮助你在构建特征清单时准确识别并定义度量标准。
4.1 五大核心KPI全景图
在压力测试中,KPI并非孤立存在,它们共同构成了系统性能的完整画像。下图展示了五大核心指标之间的关联与层级关系:
4.2 吞吐量 (Throughput)
定义:系统在单位时间内成功处理的请求数量,通常以每秒事务数(TPS)或每秒查询数(QPS)度量。
特征清单要点:
- 区分业务类型:在线交易系统关注TPS,内容查询系统关注QPS。
- 峰值与均值:记录最大吞吐量(峰值)和稳定吞吐量(均值),峰值通常出现在压力测试的中间阶段。
- 拐点识别:当吞吐量不再随并发用户数增加而增长时,即为系统瓶颈拐点。
4.3 响应时间 (Response Time)
定义:从客户端发送请求到收到完整响应所经过的时间,通常包括网络延迟、排队等待、服务处理和数据传输时间。
| 百分位 | 含义 | 典型阈值(参考) |
|---|---|---|
| P50 | 50%的请求在此时间内完成(中位数) | API服务 < 200ms |
| P90 | 90%的请求在此时间内完成 | API服务 < 500ms |
| P95 | 95%的请求在此时间内完成 | API服务 < 800ms |
| P99 | 99%的请求在此时间内完成(长尾延迟) | API服务 < 1500ms |
实践建议:在特征清单中,不要只记录平均响应时间。平均时间会掩盖长尾问题,必须包含P90、P99等百分位指标,并明确每个百分位的SLA目标。
4.4 并发用户数 (Concurrent Users)
定义:在同一时间点向系统发起请求的虚拟用户数量。注意区分“在线用户数”与“并发用户数”——在线用户可能只是保持连接,而并发用户正在执行操作。
特征清单中的关键维度:
- 阶梯并发:从低到高逐步增加并发数,观察系统行为变化。
- 最大并发:系统不崩溃、不超时、不返回错误的最大并发数。
- 最佳并发:吞吐量最高、响应时间仍可接受的并发数。
4.5 错误率 (Error Rate)
定义:失败请求数占总请求数的百分比。错误类型包括HTTP 4xx/5xx、超时、连接重置、业务逻辑异常等。
| 错误类型 | 常见原因 | 特征清单关注点 |
|---|---|---|
| HTTP 500 | 服务端内部异常、数据库连接池耗尽 | 记录错误堆栈与时间戳 |
| HTTP 503 | 服务过载、限流触发 | 关联并发用户数与资源利用率 |
| 连接超时 | 网络拥堵、线程池耗尽 | 区分客户端超时与服务端超时 |
| 业务错误 | 数据校验失败、状态冲突 | 需单独统计,与系统错误分开 |
重要原则:压力测试中,错误率必须严格控制在SLA范围内(通常 < 0.1% 或 < 1%)。一旦错误率超过阈值,即使吞吐量很高,测试结果也应判定为失败。
4.6 资源利用率 (Resource Utilization)
定义:系统硬件资源(CPU、内存、磁盘I/O、网络带宽)的使用比例。资源利用率是解释其他KPI变化的底层依据。
核心资源监控清单:
- CPU:用户态、系统态、I/O等待、空闲百分比。CPU饱和通常导致响应时间急剧上升。
- 内存:已用内存、缓存/缓冲区、交换分区使用量。内存泄漏会导致系统逐渐变慢直至崩溃。
- 磁盘I/O:读写吞吐量、I/O等待时间、队列长度。数据库密集型系统尤其关注。
- 网络:入站/出站带宽使用率、丢包率、TCP重传率。
4.7 KPI特征清单模板
以下是一个可直接用于压力测试特征清单的KPI记录模板:
# 压力测试KPI特征清单模板
# 测试场景:用户登录接口
[吞吐量]
- 目标TPS: 500
- 峰值TPS: 720 (出现在并发数=300时)
- 稳定TPS: 480 (并发数200~400区间)
[响应时间]
- P50: 45ms
- P90: 120ms
- P95: 210ms
- P99: 580ms
- 最大响应时间: 1200ms (单次异常)
[并发用户数]
- 最大并发: 500 (超过后错误率>1%)
- 最佳并发: 300 (TPS最高且RT < 200ms)
[错误率]
- 总错误率: 0.05%
- HTTP 500: 0.02%
- 超时错误: 0.03%
- 业务错误: 0%
[资源利用率]
- CPU: 平均65%,峰值92%
- 内存: 已用4.2GB/8GB,无交换
- 磁盘I/O: 平均写入50MB/s,队列长度0.5
- 网络: 入站200Mbps/1Gbps,出站50Mbps/1Gbps
4.8 KPI之间的权衡关系
五大KPI并非独立,它们之间存在典型的权衡关系,在特征清单中必须记录这些关联:
4.9 特征清单构建检查表
在完成本章学习后,请对照以下检查表确认你的特征清单是否完整:
- 吞吐量:是否记录了TPS/QPS的峰值、均值与拐点?
- 响应时间:是否包含了P50、P90、P95、P99四个百分位?
- 并发用户数:是否区分了最大并发与最佳并发?
- 错误率:是否按错误类型分类统计?是否设定了错误率阈值?
- 资源利用率:是否覆盖了CPU、内存、磁盘I/O、网络四项?
- 权衡关系:是否记录了KPI之间的关联数据(如并发数增加时响应时间的变化曲线)?