吞吐量
从传输的数据和时间计算网络吞吐量
如何使用吞吐量
- 1输入传输的数据量和所用时间。
- 2选择单位(MB/GB 与秒/分钟)。
- 3读取 Mbps 或 MB/s 吞吐率,并与链路容量比较。
吞吐率与带宽
吞吐率 = 传输数据量 / 时间;1 MB/s = 8 Mbps吞吐率是实际成功交付数据的速率;带宽是链路的理论容量。
受开销、拥塞和协议低效(TCP、重传)影响,实际吞吐率常低于带宽。
**Goodput 才是用户真正关心的指标**:它扣除了协议头部、重传、握手等一切开销,只算有效应用数据的速率。一个 100 Mbps 链路,扣掉约 6% 的以太网+IP+TCP 头部、1% 的重传、以及 TCP 慢启动的影响,Goodput 通常只有 85–92 Mbps。**做容量规划时必须用 Goodput 而非带宽**,否则会系统性高估。
吞吐量的三个常见瓶颈:① **带宽受限**(小文件、低带宽链路);② **延迟受限**(大数据、高延迟链路,窗口不够大);③ **并发受限**(连接数不够、线程数不足)。判断方法:如果增加并发数吞吐就上升,说明是延迟/并发瓶颈;如果并发加到很多吞吐仍不涨,就是带宽瓶颈。**多线程下载、HTTP/2 多路复用都是为了解决延迟受限的问题。**
| 指标 | 定义 | 单位 | 类比 |
|---|---|---|---|
| 带宽 Bandwidth | 链路最大容量 | bps | 公路车道数 |
| 吞吐量 Throughput | 实际成功传输速率 | bps | 单位时间通过的车 |
| 延迟 Latency | 数据到达所需时间 | ms | 单程行驶时间 |
| 抖动 Jitter | 延迟的波动 | ms | 行驶时间的稳定性 |
| 丢包率 Loss | 丢失包的比例 | % | 事故率 |
| Goodput | 有效数据(不含头/重传) | bps | 实际运到的货物 |
吞吐量 vs 带宽 vs 延迟的区别
常见问题
为什么速度只有套餐一半?
开销、竞争和 TCP 慢启动会让实际吞吐率远低于线速。
Mbps 还是 MB/s?
运营商用 Mbps(比特);文件传输显示 MB/s(字节)。除以 8 可比较。
Wi-Fi 能达到以太网吞吐吗?
通常不能;射频干扰与半双工空口会降低 Wi-Fi 吞吐。
怎么测真实吞吐量?
用 iperf3(命令行)在两端对打,能同时测 TCP 和 UDP,还能指定窗口大小、并发流数;用 speedtest.net 测互联网出口带宽;用 dd + scp 测磁盘到磁盘的实际传输速率。测的时候要注意:① 单向测还是双向测;② 测试时长至少 30 秒(避开 TCP 慢启动阶段);③ 多次测试取中位数;④ 排除其他流量干扰。UDP 测试还要关注抖动和丢包。
为什么千兆网络拷贝文件只有 40 MB/s?
320 Mbps 左右(40 MB/s)通常是**磁盘瓶颈**而非网络瓶颈。机械硬盘顺序读写约 100–150 MB/s,小文件随机读写可能只有 1–5 MB/s。SMB/CIFS 协议本身开销也不小(SMB 1.0 尤其慢,建议用 SMB 3.0)。另外加密(VPN、SMB 签名)、实时杀毒扫描、以及大量小文件的元数据操作都会大幅拖慢。排查方法:先用 iperf3 确认网络本身能跑满,再逐个排除磁盘、协议、软件因素。
