iperf2 与 iperf3 的区别,及使用与介绍

一 、iperf2 介绍

        Iperf2 是一个网络性能测试工具。Iperf2 可以测试 TCP和 UDP 带宽质量。Iperf2 可以测量最大 TCP 带宽,具有多种参数和 UDP 特性。Iperf2 可以报告带宽,延迟抖动和数据包丢失。

iPerf - iPerf3 and iPerf2 user documentation

二、iperf与iperf3比较

1)iperf3较iperf测试UDP丢包率和带宽,相同硬件条件下,iperf3测试带宽更高,但是存在严重丢包

      iperf测试UDP带宽较小,但是不丢包。(x86硬件平台)
2)iperf 2.05,客户端可以使用参数"-d"来进行双工测试,先测试发送,client向server发送数据,等到测试时间结束后(默认为10s,可以通过-t选项来更改),然后再测试接收,client端接收server发送数据,最后得出发送和接收吞吐率。iperf3不支持双工测试。

3)iperf3 和 iperf2 使用上, iperf3 server端使用了统一的命令iperf3 -s,不在区分测试UDP还是TCP;

4)测试是,需要保证被测试网卡的MTU值>测试包的长度,即-l 的值,默认packet size是1470,加上udp和ip头的长度28, 等于1498。若默认packet size > MTU,将会出现接收端收不到数据。

三、iperf主要影响丢包率的参数

-b   使用iperf生成并发送数据,在数据包长度固定的情况下(L默认为1470字节),带宽越大,每秒钟发送的数据包越多。当链路延时较大时,每秒发送的数据包数量太多时会造成比较大的丢包率。

-l    可以设置发送包的长度。TCP方式默认为8KB,UDP方式默认为1470字节。增加包的长度增大缓冲区长度可以减少丢包率,因为包长度很小的话会造成包的数量更多,更易造成拥塞。

在发送包为大包情况下,保障不丢包的方式,应当同时增大系统的读写缓冲区大小,修改/etc/sysctl.conf

udp 模式下丢包的原因可以根本在于发送端和接受端速度不匹配导致的,除了分析iperf参数设置上是否保证接收端能够及时处理数据外,还应该看发送端设备和接受端设备的状态。比如上周困扰我的一个丢包率问题,发送端32核计算机,接收端24核计算机。
 

猜你喜欢

转载自blog.csdn.net/hfut_zhanghu/article/details/122980059