iperf安装和实例使用

来源:互联网 发布:纸质笔记本 性价比知乎 编辑:程序博客网 时间:2024/05/22 09:46

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




0 0
原创粉丝点击