1

我使用带有 ubuntu 14.04 的 PC 到 PC 测试了有和没有 64 字节的 PPS 吞吐量。使用命令如下

server - iperf3 -s

64字节的客户端

iperf3 -u -c <server ip> -b 1000M -t -2 -l 64 **-P 6** (OR) iperf3 -u -c <server ip> -b 1000M -t -2 -l 64 **-P 8**

没有 64 字节的客户端

iperf3 -u -c <server ip> -b 1000M -t -2 **-P 6** (OR) iperf3 -u -c <server ip> -b 1000M -t -2 **-P 8**

奇怪的是,没有 64 字节最大吞吐量值的 6 或 8 个流为 810Mbps,丢包率为 0%。当我添加 64 字节数据包时,6 个流的吞吐量非常低,8 个流的吞吐量丢失了 81%。请看附件我的测试结果。请随时建议我为什么会这样?我将非常感激知道原因。有和没有 64 字节会导致 6 和 8 个流的吞吐量值和数据包丢失

4

1 回答 1

1

您正在尝试发送 1Gbps 的数据流(实际上它是 1Gbps 的有效负载字节,因此由于 UDP、IP 和以太网开销,实际数据速率高于该数据速率)。iperf3 的默认行为是发送较少的、相当大的数据包(大约 8KB 或在接口 MTU 附近,取决于您运行的 iperf3 版本)。当您指定 -l 64 时,这会使发送方发出许多小数据包的流。对于许多网络设备来说,这实际上是最坏的情况,因为很多协议处理都是针对每个数据包进行的,无论有多少有效负载字节。

对于高比特率 UDP 流,您还可以考虑使用 -w 选项增加套接字缓冲区大小。这已被证明有利于高速 (>= 1Gbps) UDP 测试。

最后,在这种测试中,iperf2 可能比 iperf3 更好,因此您可以考虑改用它。

于 2017-04-26T19:18:32.850 回答