4. 网络带宽基础:带宽单位换算与理论吞吐上限公式

在 etcd 压测中,网络带宽是决定吞吐上限的首要物理约束。无论 CPU 多快、磁盘多强,一旦消息大小与并发量乘积超过链路容量,延迟就会急剧上升、吞吐进入平台期。本节从单位换算出发,推导理论吞吐上限公式,为后续参数平衡建立量化基础。

4.1 带宽单位:比特与字节的换算陷阱

网络带宽的标称单位是 bps(bits per second,比特/秒),而 etcd 消息大小通常用 字节(Byte) 表示。两者换算关系如下:

单位 全称 换算关系 常见场景
1 bps 1 bit/s — 网络接口卡标称
1 Bps 1 Byte/s 1 Bps = 8 bps 应用层数据量
1 Kbps 1,000 bps 1 Kbps = 125 Bps 低带宽链路
1 Mbps 1,000,000 bps 1 Mbps ≈ 125 KBps 千兆以太网
1 Gbps 1,000,000,000 bps 1 Gbps ≈ 125 MBps 数据中心内网
常见误区:etcd 压测中,很多人将 1 Gbps 网卡直接当作 1000 MBps 计算,实际只有约 125 MBps。若消息大小为 1 MB,理论最大吞吐仅为 125 QPS,而非 1000 QPS。这个 8 倍换算错误是压测结果与预期偏差的首要原因。

4.2 理论吞吐上限公式

在理想网络条件下(无丢包、无拥塞、无协议开销),单条 TCP 连接的理论吞吐上限由以下公式决定:

Throughput (QPS) = Bandwidth (bps) / MessageSize (bits)

或更常用的字节形式:
Throughput (QPS) = (Bandwidth (Bps) × 8) / (MessageSize (bytes) × 8)
                 = Bandwidth (Bps) / MessageSize (bytes)

由于分子分母的 8 可以约去,实际计算时直接使用字节单位更简洁:

Throughput (QPS) = Bandwidth (bytes/s) / MessageSize (bytes)

例如:

  • 1 Gbps 链路(125 MBps),消息大小 1 KB:
    Throughput = 125 × 10⁶ / 1 × 10³ = 125,000 QPS
  • 1 Gbps 链路,消息大小 1 MB:
    Throughput = 125 × 10⁶ / 1 × 10⁶ = 125 QPS
  • 10 Gbps 链路(1250 MBps),消息大小 64 KB:
    Throughput = 1250 × 10⁶ / 64 × 10³ ≈ 19,531 QPS
核心洞察:消息大小每增大 10 倍,理论吞吐上限就下降 10 倍。在 etcd 压测中,消息大小是比带宽更敏感的杠杆——调整消息大小对吞吐的影响与调整带宽等效,但成本为零。

4.3 带宽-消息大小关系图

下图展示了不同带宽下,消息大小与理论吞吐上限的对数关系。横轴为消息大小(字节),纵轴为吞吐(QPS),三条曲线分别对应 1 Gbps、10 Gbps、40 Gbps 链路。

带宽-消息大小-吞吐关系图 理论吞吐上限 vs 消息大小(不同带宽) 1 KB 4 KB 16 KB 64 KB 256 KB 1 MB 消息大小(对数刻度) 0 50K 100K 150K 200K 吞吐 (QPS) 1 Gbps 链路 10 Gbps 链路 40 Gbps 链路 说明:纵轴为理论最大吞吐,实际压测还需考虑 TCP 开销、RTT、etcd 协议头等,通常只能达到理论值的 60%-80%。

4.4 实际压测中的带宽损耗因素

理论公式假设 100% 链路利用率,但实际 etcd 压测中,以下因素会降低有效吞吐:

损耗因素 典型影响 说明
TCP/IP 协议头 2% - 5% 每个数据包额外 40-60 字节开销
etcd gRPC 帧头 1% - 3% HTTP/2 帧、gRPC 元数据
Raft 日志复制 10% - 30% Leader 需将请求广播至多数节点
TCP 拥塞控制 5% - 20% 高延迟或丢包时窗口缩减
序列化/反序列化 3% - 8% protobuf 编解码 CPU 开销
压测经验法则:在 1 Gbps 内网、消息大小 1 KB 时,理论上限 125,000 QPS,实际 etcd 压测通常稳定在 70,000 - 90,000 QPS。若低于 50,000 QPS,说明瓶颈不在带宽,而在 CPU 或磁盘 I/O。

4.5 带宽与消息大小的平衡决策矩阵

根据上述公式和损耗因素,可以构建一个快速决策矩阵,帮助判断压测场景的瓶颈类型:

消息大小 1 Gbps 理论 QPS 实际预期 QPS 典型瓶颈
256 B 488,281 290,000 - 390,000 CPU / 网卡中断
1 KB 125,000 75,000 - 100,000 CPU / 内存带宽
4 KB 31,250 18,000 - 25,000 CPU / 磁盘 I/O
16 KB 7,812 4,500 - 6,200 磁盘 I/O / 网络
64 KB 1,953 1,100 - 1,500 网络带宽
256 KB 488 290 - 390 网络带宽
1 MB 125 75 - 100 网络带宽
关键结论:当消息大小 ≤ 16 KB 时,带宽通常不是首要瓶颈;当消息大小 ≥ 64 KB 时,带宽成为硬约束。在 etcd 压测沙盘中,先根据消息大小判断瓶颈域,再决定调优方向——小消息调 CPU/磁盘,大消息调带宽/压缩。