3. 性能测试核心概念
在通信原型自动化性能测试系统中,测试结论是否可信,取决于我们是否用一组定义清晰、可复现、可关联的指标来描述被测对象。吞吐量、时延、抖动、丢包率、并发连接数和资源占用率,是贯穿测试设计、执行与判读的六个核心指标。它们并非彼此独立,而是共同刻画“链路能承载多少、传得多快、稳不稳、丢不丢、能撑多少连接、代价多大”这一完整画像。
一、六个关键指标的定义与量纲
吞吐量(Throughput)指单位时间内成功传输的有效数据量,常用 Mbps、Gbps 或 pps 表示。它强调“成功送达”,因此与链路速率、协议开销、重传和窗口机制密切相关。时延(Latency)通常指报文从发送端到接收端所需时间,常用 RTT 或单向时延表示,单位 ms 或 μs。抖动(Jitter)是时延的变化程度,常用相邻时延差值的统计量(如平均偏差、P95 偏差)表示,单位同样为 ms 或 μs。丢包率(Packet Loss Rate)是丢失报文数占总发送报文数的比例,用百分比表示。并发连接数(Concurrent Connections)指系统在同一时刻维持的活跃连接数量,反映会话表、内存和调度能力。资源占用率(Resource Utilization)包括 CPU、内存、带宽、队列深度等,用百分比或绝对量表示。
这些指标的量纲不同,但存在明确的耦合关系。例如,当并发连接数持续升高时,CPU 和内存占用率上升,若处理能力不足,时延会增大、抖动加剧,最终导致丢包率上升、吞吐量下降。因此,性能测试不能只追求单一指标的峰值,而应寻找“稳定工作区间”。
二、指标之间的关系与相互制约
吞吐量与时延的关系最容易被误解。在低负载区,增加发送速率通常能提升吞吐量,时延基本稳定;进入中高负载后,排队时延开始增加,吞吐量增长放缓;当接近系统容量时,时延急剧上升,吞吐量反而可能因丢包和重传而下降。这就是经典的“时延—吞吐量拐点”。抖动往往在拐点附近显著恶化,因为队列长度波动变大。丢包率一旦超过阈值,TCP 会触发拥塞控制,进一步压低吞吐量,形成负反馈。
并发连接数对资源占用率的影响同样非线性。连接建立、维护和拆除都需要消耗 CPU 与内存;当连接数超过系统设计容量时,新建连接失败率上升,已有连接的时延和抖动也会变差。因此,测试中应同时记录连接数、资源占用率和业务指标,才能判断瓶颈位于协议栈、应用层还是硬件资源。
三、测试方法与参数采集流程
在自动化性能测试系统中,指标采集应遵循“统一时间基准、统一采样周期、统一统计口径”的原则。典型流程如下:
- 确定测试目标:明确是验证吞吐上限、时延边界,还是并发连接容量。
- 配置负载模型:设置发送速率、连接数、报文大小、协议类型和持续时间。
- 同步启动采集:在发送端、接收端和被测设备上同时记录时间戳与计数器。
- 计算指标:按采样窗口计算吞吐量、平均时延、抖动、丢包率和资源占用率。
- 判定拐点:绘制“负载—指标”曲线,识别吞吐量拐点、时延拐点和丢包起点。
- 输出报告:给出稳定工作区间和建议的最大并发连接数。
以下是一个自动化测试脚本中常见的参数配置片段,用于控制负载和采集周期:
test_profile:
name: "tcp_throughput_latency"
duration_sec: 300
sample_interval_ms: 1000
traffic:
protocol: "TCP"
packet_size_byte: 1024
target_rate_mbps: [100, 300, 500, 800, 1000]
connections:
concurrent: [100, 500, 1000, 2000]
ramp_up_sec: 30
metrics:
- throughput
- latency_avg
- latency_p95
- jitter_p95
- packet_loss_rate
- cpu_util
- mem_util
thresholds:
packet_loss_rate_max: 0.1%
latency_p95_max_ms: 20
jitter_p95_max_ms: 5
四、典型场景与指标判读案例
假设某通信原型在 500 Mbps 负载下运行稳定:吞吐量 498 Mbps,平均时延 3 ms,抖动 P95 为 1.2 ms,丢包率 0.01%,并发连接数 1000,CPU 占用 45%。当负载提升到 800 Mbps 时,吞吐量仅增至 620 Mbps,平均时延升至 18 ms,抖动 P95 达到 9 ms,丢包率 0.8%,CPU 占用 92%。此时可以判断:系统已越过吞吐量拐点,瓶颈在 CPU 处理能力,继续加压只会恶化时延和丢包,而不会提升有效吞吐。正确的结论是“稳定工作区间约为 500~600 Mbps,建议并发连接数不超过 1200”。
五、指标清单与判读要点
| 指标 | 常用单位 | 核心含义 | 判读要点 |
|---|---|---|---|
| 吞吐量 | Mbps / Gbps / pps | 单位时间成功传输的有效数据量 | 关注拐点,而非峰值;需结合丢包和重传 |
| 时延 | ms / μs | 报文端到端传输时间 | 区分平均时延与 P95/P99 时延 |
| 抖动 | ms / μs | 时延的变化程度 | 实时业务对抖动更敏感,需看 P95 偏差 |
| 丢包率 | % | 丢失报文占总发送报文的比例 | 超过阈值会触发重传,拖累吞吐量 |
| 并发连接数 | 个 | 同一时刻维持的活跃连接数量 | 需与连接建立速率、资源占用联合分析 |
| 资源占用率 | % / 绝对量 | CPU、内存、带宽、队列等使用程度 | 用于定位瓶颈,避免资源饱和导致指标突变 |