3. 性能测试核心概念

在通信原型自动化性能测试系统中,测试结论是否可信,取决于我们是否用一组定义清晰、可复现、可关联的指标来描述被测对象。吞吐量、时延、抖动、丢包率、并发连接数和资源占用率,是贯穿测试设计、执行与判读的六个核心指标。它们并非彼此独立,而是共同刻画“链路能承载多少、传得多快、稳不稳、丢不丢、能撑多少连接、代价多大”这一完整画像。

核心理解:吞吐量回答“能过多少”,时延回答“过得多快”,抖动回答“快得稳不稳”,丢包率回答“过得全不全”,并发连接数回答“同时能服务多少”,资源占用率回答“为此付出多少代价”。六者必须联合判读,单看任何一个都可能得出错误结论。

一、六个关键指标的定义与量纲

吞吐量(Throughput)指单位时间内成功传输的有效数据量,常用 Mbps、Gbps 或 pps 表示。它强调“成功送达”,因此与链路速率、协议开销、重传和窗口机制密切相关。时延(Latency)通常指报文从发送端到接收端所需时间,常用 RTT 或单向时延表示,单位 ms 或 μs。抖动(Jitter)是时延的变化程度,常用相邻时延差值的统计量(如平均偏差、P95 偏差)表示,单位同样为 ms 或 μs。丢包率(Packet Loss Rate)是丢失报文数占总发送报文数的比例,用百分比表示。并发连接数(Concurrent Connections)指系统在同一时刻维持的活跃连接数量,反映会话表、内存和调度能力。资源占用率(Resource Utilization)包括 CPU、内存、带宽、队列深度等,用百分比或绝对量表示。

这些指标的量纲不同,但存在明确的耦合关系。例如,当并发连接数持续升高时,CPU 和内存占用率上升,若处理能力不足,时延会增大、抖动加剧,最终导致丢包率上升、吞吐量下降。因此,性能测试不能只追求单一指标的峰值,而应寻找“稳定工作区间”。

二、指标之间的关系与相互制约

吞吐量与时延的关系最容易被误解。在低负载区,增加发送速率通常能提升吞吐量,时延基本稳定;进入中高负载后,排队时延开始增加,吞吐量增长放缓;当接近系统容量时,时延急剧上升,吞吐量反而可能因丢包和重传而下降。这就是经典的“时延—吞吐量拐点”。抖动往往在拐点附近显著恶化,因为队列长度波动变大。丢包率一旦超过阈值,TCP 会触发拥塞控制,进一步压低吞吐量,形成负反馈。

并发连接数对资源占用率的影响同样非线性。连接建立、维护和拆除都需要消耗 CPU 与内存;当连接数超过系统设计容量时,新建连接失败率上升,已有连接的时延和抖动也会变差。因此,测试中应同时记录连接数、资源占用率和业务指标,才能判断瓶颈位于协议栈、应用层还是硬件资源。

通信原型性能测试核心指标关系 负载增加 → 资源占用上升 → 时延/抖动恶化 → 丢包出现 → 吞吐量回落 系统负载 / 容量 发送速率 · 连接数 · 队列 吞吐量 Mbps / Gbps / pps 成功送达的有效数据量 时延 RTT / 单向时延 报文端到端所需时间 抖动 时延变化量 / P95 偏差 反映传输稳定性 丢包率 丢失报文 / 总发送报文 触发重传与拥塞控制 并发连接数 活跃会话数 / 连接建立速率 资源占用率 CPU · 内存 · 带宽 · 队列 吞吐量与时延存在拐点关系 抖动加剧常先于丢包出现 丢包 → 重传 → 吞吐下降 时延波动 → 抖动上升

三、测试方法与参数采集流程

在自动化性能测试系统中,指标采集应遵循“统一时间基准、统一采样周期、统一统计口径”的原则。典型流程如下:

  1. 确定测试目标:明确是验证吞吐上限、时延边界,还是并发连接容量。
  2. 配置负载模型:设置发送速率、连接数、报文大小、协议类型和持续时间。
  3. 同步启动采集:在发送端、接收端和被测设备上同时记录时间戳与计数器。
  4. 计算指标:按采样窗口计算吞吐量、平均时延、抖动、丢包率和资源占用率。
  5. 判定拐点:绘制“负载—指标”曲线,识别吞吐量拐点、时延拐点和丢包起点。
  6. 输出报告:给出稳定工作区间和建议的最大并发连接数。

以下是一个自动化测试脚本中常见的参数配置片段,用于控制负载和采集周期:

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、内存、带宽、队列等使用程度 用于定位瓶颈,避免资源饱和导致指标突变
在自动化性能测试系统中,建议将上述六个指标作为同一份测试报告的标准字段,并固定采样周期和统计口径。只有口径一致,不同版本、不同配置之间的性能对比才有意义。指标之间的关系比单个数值更重要:稳定工作区间、拐点位置和资源余量,才是性能测试真正要交付的结论。