iperf安装和实例使用

    xiaoxiao2022-06-28  41

    iperf安装

    现在Linux Ubuntu库中基本上都有自带的iperf,直接使用sudo apt-get install iperf命令安装即可,也可以在以下网址去下载 :http://xiazai.zol.com.cn/detail/33/329375.shtml

    以下是安装过程:

    # tar -xvf iperf.tar.gz

    # cd iperf

    # ./configure

    # make

    # make install 

    安装成功

    iperf使用实例

    UDP 设置测试环境

    iperf也可以用于UDP数据包吞吐量、丢包率和延迟指标,但是由于UDP协议是一个非面向连接的轻量级传输协议,

    并且不提供可靠的数据传输服务,因此对UDP应用的关注点不是传输数据有多快,而是它的丢包率和延时指标。

    过iperf的“-u”参数即可测试UDP应用的传输性能,图2-20测试的是在iperf客户端传输100MB的UDP数据包的输出结果。

    服务端ip地址192.168.0.102

    设置服务端:./iperf -u -c

    客户端:

    # iperf -u -c 192.168.0.102 -b 100M -f M -i 3 ------------------------------------------------------------ Client connecting to 192.168.0.102, UDP port 5001 Sending 1470 byte datagrams UDP buffer size: 0.16 MByte (default) ------------------------------------------------------------ [  3] local 192.168.0.105 port 52406 connected with 192.168.0.102 port 5001 [ ID] Interval       Transfer     Bandwidth [  3]  0.0- 3.0 sec  0.49 MBytes  0.16 MBytes/sec [  3]  3.0- 6.0 sec  0.35 MBytes  0.12 MBytes/sec [  3]  6.0- 9.0 sec  0.07 MBytes  0.02 MBytes/sec [  3]  0.0-10.5 sec  0.91 MBytes  0.09 MBytes/sec [  3] Sent 648 datagrams [  3] Server Report: [  3]  0.0-11.0 sec  0.76 MBytes  0.07 MBytes/sec  227.075 ms  73/ 9761 (0.75%) [  3]  0.0-11.0 sec  1 datagrams received out-of-order

    正常的情况下,UDP的丢包率在1%以内才算是符合要求,上述中红色标记就是丢包比率0.74% 

    73/9761 73丢包数量 9761发包总数 227.075 ms 表示抖动时间。前面三个参数:分别是传输时间,

    传输大小,传输带宽

    这个输出结果过于简单,要了解更详细的UDP丢包和延时信息,可以在iperf服务端查看,因为在客户端

    执行传输测试的同时,服务器端也会同时显示传输状态

    实例2 TCP

    测试TCP吞吐量

    为了确定网卡的最大吞吐量,可以在任意客户端运行iperf命令,iperf将尝试从客户端尽可能

    快地向服务器端发送数据请求,并且会输出发送的数据量和网卡平均带宽值。图2-14展示了通过

    一个最简单的带宽测试命令的输出结果

    从图2-14可以看出,iperf默认的运行时间是10s,每隔1s输出一次传输状态,同时还可以看到每秒传输的数据量在112MB左右,

    刚好与“Bandwidth”列的值对应起来,网卡的带宽速率维持在941Mbits/sec左右,而测试的服务器是千兆网卡,这个测试值也基本合理。

    在输出的最后,iperf还给出了总的数据发送、接收量,以及带宽速率平均值,通过这些值,基本可以判断网络带宽是否正常,网络传输

    状态是否稳定。

    iperf提供很多参数,可以多角度、全方位地测试网络带宽利用率,例如,要改变iperf运行的时间和输出频率,

    可以通过“-t”和“-i”参数来实现,如图2-15所示。

    从图2-15可以看出,输出状态的间隔变为每5s一次,总共执行测试时间为20s,测试的带宽速率仍然保持在941Mbits/sec左右,

    唯一变化的是失败重传次数增加了。

    为了模拟大量的数据传输,也可以指定要发送的数据量,这可以通过“-n”参数来实现。在指定“-n”参数后,“-t”参数失效,

    iperf在传输完毕指定大小的数据包后,自动结束,如图2-16所示。

    图2-16的例子是指定发送一个5GB左右的数据包,并且每隔10s输出一次传输状态,从这个输出可以看出,当失败重传次数较多时,

    传输速率急速下降。有时候,为了模拟更真实的TCP应用,iperf客户端允许从一个特定的文件发送数据,

    这可以通过“-F”参数实现,如图2-17所示。

    在图2-17的例子中,通过“-F”参数指定了一个webdata.tar.gz文件作为iperf要传输的数据。在使用此参数时,

    需要同时指定一个“-t”参数来设置要测试传输的时间,这个时间尽量设置长一些,因为在默认传输时间10s内,

    这个文件可能还没有传完。在使用iperf进行网络带宽测试时,如果没有指定发送方式,iperf客户端只会使用单一的线程,

    而iperf是支持多线程的,可以使用iperf提供的“-P”参数来设置多线程的数目,通过使用多线程,可以在一定程度上增加网络的吞吐量。

    下面通过两个例子进行简单对比,图2-18是iperf使用单线程传输1.86GB数据所消耗的时间和带宽使用情况。

    为了速率单位统一,这里使用“-f”参数将输出结果都通过MBytes/sec来显示。

    部分参考:http://book.51cto.com/art/201409/452441.htm

    转载请注明原文地址: https://ju.6miu.com/read-1124309.html

    最新回复(0)