我使用带有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%丢失。请注意附上我的测试结果。请随时告诉我为什么会这样?我真的很感激知道原因。 With and Without 64 byte causes throughput value and packet lost at 6 and 8 streams
答案 0 :(得分:1)
您正在尝试发送1Gbps的数据流(实际上它是1Gbps的有效负载字节,因此实际数据速率高于UDP,IP和以太网开销所导致的数据速率)。 iperf3的默认行为是发送更少,相当大的数据包(大约8KB或接口MTU周围,具体取决于您运行的iperf3的版本)。指定-l 64时,会使发送方发出许多小数据包的流。这实际上是许多网络设备的最坏情况,因为无论有多少个有效负载字节,很多协议处理都是每个数据包。
对于高比特率UDP流,您还可以考虑使用-w选项增加套接字缓冲区大小。这被证明对高速(> = 1Gbps)UDP测试有益。
最后,iperf2在这种测试中可能比iperf3更好,所以你可以考虑使用它。