年轻人的生活方式 | 注册
安装&配置 查看详情

网络性能测试工具iperf使用教程

网维热点 发布时间:2017年01月03日 来源:skywalker

Iperf是一个网络性能测试工具。Iperf可以测试TCP和UDP带宽质量。Iperf可以测量最大TCP带宽,具有多种参数和UDP特性。Iperf可以报告带宽,延迟抖动和数据包丢失。利用Iperf这一特性,可以用来测试一些网络设备如路由器,防火墙,交换机等的性能。

Iperf有两种版本,windows版和linux版本。linux版本更新快,最新版本为iperf 3.0,下载地址为http://code.google.com/p/iperf/downloads/list ,windows版本官方更新的最新版本为1.7(打包在jperf中),下载地址为:

 http://sourceforge.net/projects/iperf/files/jperf/jperf%202.0.0/

Iperf的主要功能如下:

TCP

  • 测量网络带宽

  • 报告MSS/MTU值的大小和观测值

  • 支持TCP窗口值通过套接字缓冲

  • 当P线程或Win32线程可用时,支持多线程。客户端与服务端支持同时多重连接

UDP

  • 客户端可以创建指定带宽的UDP流

  • 测量丢包

  • 测量延迟

  • 支持多播

  • 当P线程可用时,支持多线程。客户端与服务端支持同时多重连接(不支持Windows)

其他

  • 在适当的地方,选项中可以使用K(kilo-)和M(mega-)。例如131072字节可以用128K代替。

  • 可以指定运行的总时间,甚至可以设置传输的数据总量。

  • 在报告中,为数据选用最合适的单位。

  • 服务器支持多重连接,而不是等待一个单线程测试。

  • 在指定时间间隔重复显示网络带宽,波动和丢包情况。

  • 服务器端可作为后台程序运行。

  • 服务器端可作为Windows 服务运行。

  • 使用典型数据流来测试链接层压缩对于可用带宽的影响。

  • 支持传送指定文件,可以定性和定量测试

Iperf使用方法

  1. 安装Iperf

    1. 对于windows版的Iperf,直接将解压出来的iperf.exe和cygwin1.dll复制到%systemroot%目录即可

    2. 对于linux版的Iperf,请使用如下命令安装

      gunzip -c iperf-<version>.tar.gz | tar -xvf -

      cd iperf-<version>

      ./configure

      make

      make install

使用Iperf(以windows版本为例)

在命令提示符中输入iperf命令即可运行Iperf,使用命令Iperf –help可以查看iperf的帮助

                   

  1. 测试单线程TCP

  • 在服务端运行iperf,输入命令iperf –s –p 12345 –i 1 –M 以在本机端口12345上启用iperf

                   

  • 在客户端运行iperf,输入命令iperf –c server-ip –p server-port –i 1 –t 10 –w 20K,其中参数说明如下:

    -c:客户端模式,后接服务器ip

    -p:后接服务端监听的端口

    -i:设置带宽报告的时间间隔,单位为秒

    -t:设置测试的时长,单位为秒

    -w:设置tcp窗口大小,一般可以不用设置,默认即可

测试后截图如下:

客户端

              

服务端

              

其中:Interval表示时间间隔。Transfer表示时间间隔里面转输的数据量。Bandwidth是时间间隔里的传输速率。最后一行是本次测试的统计。测试可知带宽平均为89.9Mbit/s。

 

测试多线程TCP

在客户端添加-P参即可测试多线程的TCP性能,如下为使用两个线程的测试情况

客户端截图

             

服务端截图

            

  1. 测试单线程UDP(默认带宽)

  2. 在服务端运行iperf,输入命令iperf –s -u –p 12345 –i 1 以在本机端口12345上启用iperf,并运行于udp模式

  • 在客户端运行iperf,输入命令iperf -c server-ip -p server-port -i 1 -t 10 -b,其中参数说明如下:

    -c:客户端模式,后接服务器ip

    -p:后接服务端监听的端口

    -i:设置带宽报告的时间间隔,单位为秒

    -t:设置测试的时长,单位为秒

    -b:设置udp的发送带宽,单位bit/s

客户端截图

          

服务端截图

          

其中,Jitter为抖动,lost/total为丢包数量,Datagrams为包数量。

  1. 测试单线程UDP(带宽为10Mbit/s)

    设置客户端带宽为10M即可,使用参数-b指定

客户端截图

          

服务端截图   

          

  1. 测试多线程UDP

    与多线程TCP类似,只需要客户端使用-P参数指定线程个数即可

 

  1. 测试UDP的双向传输

    客户端使用参数-d以运行双测试模式,客户端会与服务端进行udp往返测试。可以使用-L参数指定本端双测试监听的端口。

客户端截图

                  

服务端截图

                   

  1. 测试UDP往复传输

    与双向传输类似,使用参数-r以运行交互模式,仍然可以使用-L参数指定交互的端口。

客户端截图

                 

服务端截图