3. 性能测试基础:吞吐量、延迟、并发、资源利用率核心指标

在数据库可靠性压测中,性能指标是衡量系统行为与瓶颈的“仪表盘”。四个核心指标——吞吐量、延迟、并发与资源利用率——构成了性能评估的基石。它们相互关联,任何单一指标的优化都可能引发其他指标的连锁变化。本节将逐一拆解其定义、度量方式及在压测中的典型表现。

3.1 吞吐量(Throughput)

吞吐量衡量系统在单位时间内成功处理的工作量。对于数据库而言,通常以 TPS(Transactions Per Second,每秒事务数) 或 QPS(Queries Per Second,每秒查询数) 表示。

指标 定义 适用场景 压测关注点
TPS 每秒完成的事务数(含提交/回滚) OLTP 系统(订单、支付) 事务完整性、锁竞争
QPS 每秒执行的查询数(含读写) 读写混合、报表查询 索引效率、IO 吞吐
RPS 每秒处理的请求数(更通用) API 网关、连接池 连接建立与释放开销
压测经验: 吞吐量并非越高越好。当系统接近饱和点时,吞吐量增长会趋于平缓甚至下降(因排队与上下文切换开销)。应关注“拐点吞吐量”——即延迟开始急剧恶化前的最大稳定吞吐。

3.2 延迟(Latency)

延迟指从请求发出到收到完整响应所经过的时间。在数据库压测中,延迟通常分为网络延迟、排队延迟与服务延迟。常用统计指标包括:

  • 平均延迟(Avg Latency):容易受极端值影响,不推荐单独使用。
  • 百分位延迟(P99 / P95 / P50):P99 表示 99% 的请求延迟低于该值,更能反映尾部体验。
  • 最大延迟(Max Latency):通常由 GC、锁等待或 IO 抖动引起,是稳定性关键信号。
关键原则: 在变更窗口压测中,P99 延迟不应超过基线的 1.5 倍,且不能出现持续上升趋势(即“延迟发散”)。若 P99 随并发线性增长,说明系统已进入过载区。

3.3 并发(Concurrency)

并发指系统同时处理的活跃请求数。注意区分并发用户数(虚拟用户)与数据库活跃连接数。压测中,并发通常通过线程池或协程模拟。

概念 说明 压测控制方式
并发用户数 压测工具模拟的虚拟用户数量 JMeter 线程组、Sysbench 线程数
活跃连接数 数据库端实际处于事务中的连接 监控 SHOW PROCESSLIST 或连接池指标
并发度 活跃连接数 / 最大连接数 建议保持在 60%~80% 以下
常见误区: 并发数越高,吞吐量不一定越高。当并发超过数据库连接池或 CPU 核数的处理能力时,大量请求会进入排队状态,导致延迟飙升、吞吐下降(即“并发悬崖”)。压测时应采用“阶梯并发”模式,逐步增加并发以找到最佳并发点。

3.4 资源利用率(Resource Utilization)

资源利用率反映系统各组件的负载程度。数据库压测中需重点监控以下资源:

  • CPU:用户态(SQL 解析、计算)、系统态(IO 等待、锁)、空闲。若 CPU 空闲但 IO 等待高,说明瓶颈在磁盘。
  • 内存:Buffer Pool 命中率、排序区使用、连接内存。命中率低于 95% 时需关注。
  • 磁盘 IO:IOPS、吞吐量、平均 IO 延迟(await)、队列长度(avgqu-sz)。
  • 网络:带宽使用率、TCP 重传率、连接数。
利用率黄金法则: 对于 OLTP 系统,建议 CPU 利用率 ≤ 70%,磁盘利用率 ≤ 60%,内存 Buffer Pool 命中率 ≥ 99%。超过此阈值,系统抗风险能力显著下降。

3.5 四指标关联模型

四个指标并非孤立存在,它们遵循 Little's Law 的变体关系:并发 = 吞吐量 × 平均延迟。在压测中,这一关系可用于验证数据一致性:

# 压测中验证指标一致性
# 假设:并发数 = 100,吞吐量 = 500 TPS
# 则理论平均延迟 = 并发 / 吞吐量 = 100 / 500 = 0.2 秒 = 200 ms
# 若实际平均延迟远高于 200 ms,说明存在排队或阻塞

下图展示了四个指标在典型压测过程中的动态关系:

性能核心指标关联模型 吞吐量 (TPS/QPS) 单位时间处理能力 延迟 (Latency) P50 / P99 / Avg 并发 (Concurrency) 活跃连接数 资源利用率 CPU / 内存 / IO / 网络 核心公式: 并发 = 吞吐量 × 平均延迟(Little's Law 变体) 压测中若三者不满足此关系,说明存在排队、阻塞或数据采集误差

3.6 压测中的指标观察策略

在变更窗口压测中,建议按以下步骤观察指标:

  1. 基线采集:在低并发(如 10 并发)下运行 5 分钟,记录吞吐量、P99 延迟、CPU 利用率。
  2. 阶梯加压:每 2 分钟增加 20 并发,观察各指标变化趋势。
  3. 拐点识别:当吞吐量不再随并发增加而增长,或 P99 延迟出现非线性上升时,标记为“饱和点”。
  4. 资源瓶颈定位:若 CPU 利用率未达 70% 但延迟已恶化,检查 IO 等待或锁竞争。
  5. 稳定性验证:在 80% 饱和点并发下持续运行 30 分钟,观察指标是否发散。
变更窗口压测验收标准(示例):
✅ 吞吐量 ≥ 基线值的 90%
✅ P99 延迟 ≤ 基线值的 150%
✅ CPU 利用率 ≤ 75%,IO 等待 ≤ 10%
✅ 无内存泄漏(内存占用稳定)
✅ 无连接池耗尽(活跃连接数 ≤ 最大连接数的 80%)

3.7 常见指标陷阱与避坑

陷阱 表现 正确做法
只看平均延迟 平均延迟正常,但 P99 已超时 同时监控 P50、P95、P99
忽略预热期 前 1 分钟指标偏低,误判为性能差 预热 3~5 分钟后再采集数据
并发数等于连接数 压测工具并发高,但数据库连接池小 监控数据库端活跃连接数
资源利用率 100% 才算满 CPU 100% 时延迟已不可接受 以延迟拐点作为容量上限