安装Iperf2011-03-2011:42:49|分类:Linux|标签:|字号大中小订阅./configure--configureforyourmachinemake--compileIperfmakeinstall--installIperf,ifdesirediperf-s(onmachinefoo.bar.edu)iperf-cfoo.bar.edu(onsomeothermachine)iperf-h(forhelpscreen)iperf-v(forversioninformation)1、./configure这一步可能会出问题,即系统没有安装g++,apt-getinstallg++;安装完后可以重新编译Iperf,最简单的方法是使用以下命令:1、makedistclean2、./configure3、makeiperfforLinux的安装与使用来源:ChinaUnix博客日期:2008.07.0314:47(共有条评论)我要评论什么是Iperf?Iperf是一个网络性能测试工具。Iperf可以测试TCP和UDP带宽质量。Iperf可以测量最大TCP带宽,具有多种参数和UDP特性。Iperf可以报告带宽,延迟抖动和数据包丢失。编译与安装Iperf2.0.2目前仅提供源码包的下载。当你下载到Iperf源码包后,在类unix系统上,需要先解压缩源码包,使用解压缩命令gzip或tar。解压后会产生新文件夹“Iperf-2.0.2”。Iperf2.0.2在以下操作系统中可以很好的被编译:Linux,SGIIRIX,HP-UX,Solaris,AIX,和CrayUNICOS。使用“make”命令编译Iperf源码。完整的编译命令如下:tarxvfiperf-2.0.2.tar.gzcdiperf-2.0.2./configuremake编译:yumlistgcc-c++,yuminstallgcc-c++.版本编译成功后,使用以下命令安装Iperf:makeinstall重新编译Iperf,最简单的方法是使用以下命令:makedistclean./configuremakeMakeinstall功能介绍TCP测量网络带宽报告MSS/MTU值的大小和观测值支持TCP窗口值通过套接字缓冲当P线程或Win32线程可用时,支持多线程。客户端与服务端支持同时多重连接UDP客户端可以创建指定带宽的UDP流测量丢包测量延迟支持多播当P线程可用时,支持多线程。客户端与服务端支持同时多重连接(不支持Windows)在适当的地方,选项中可以使用K(kilo-)和M(mega-)。例如131072字节可以用128K代替。可以指定运行的总时间,甚至可以设置传输的数据总量。在报告中,为数据选用最合适的单位。服务器支持多重连接,而不是等待一个单线程测试。在指定时间间隔重复显示网络带宽,波动和丢包情况。服务器端可作为后台程序运行。服务器端可作为Windows服务运行。使用典型数据流来测试链接层压缩对于可用带宽的影响.命令使用:forUDPSending:iperf-c[IP-Addr]-i1-p[port]-u-t10000-b2M====================================================forUDPReceiving:iperf-s-i1-u-p[port]========================================iperf-c10.0.5.5-i1-p6015-u-t10000-b128kiperf-s-i1-u-p6005iperf-c10.18.61.66-i1-p6006-u-t99999-b128kiperf-s-i1-u-p6006-t999999运行后的结果在Clinet端:C:\iperf-c10.0.5.235-i1-p6005-u-t60-b128k------------------------------------------------------------Clientconnectingto10.0.5.235,UDPport6005Sending1470bytedatagramsUDPbuffersize:8.00KByte(default)------------------------------------------------------------[ID]IntervalTransferBandwidth[1868]0.0-60.2sec940KBytes128Kbits/sec[1868]ServerReport:[1868]0.0-60.8sec940KBytes127Kbits/sec13.838ms0/655(0%)[1868]Sent655datagrams使用iperf测试网络性能分类:其他2012-03-2010:06391人阅读评论(0)收藏举报iperf是一个TCP/IP和UDP/IP的性能测量工具,能够提供网络吞吐率信息,以及震动、丢包率、最大段和最大传输单元大小等统计信息;从而能够帮助我们测试网络性能,定位网络瓶颈。iperf是开源的,源代码可以从下载。1.iperf能够做什么提起iperf,想必大家都知道它是用了测试网络性能的。具体说来,Iperf是美国伊利诺斯大学(UniversityofIllinois)开发的一种开源的网络性能测试工具。可以用来测试网络节点间(也包括回环)TCP或UDP连接的性能,包括带宽、抖动以及丢包率,其中抖动和丢包率适应于UDP测试,而带宽测试适应于TCP和UDP。这里需要特别提出的是,iperf不能够用来测试时延,想一想这是为什么。2.网络性能参数以上提到了网络的主要性能参数包括带宽,时延,抖动和丢包率,这些用一个名词代替,就是QOS(服务质量)。对于时延和抖动,见如下图图中D1,D2分别表示包A和包B的时延。抖动=|D2-D1|对于时延,iperf无能为力。但是iperf能够计算抖动,想想这又是为什么。我们知道,在iperf中,我们测试时需要发送大量的包,因此计算出来的抖动值就是连续发送时延差值的平均值。3.安装iperf在Unix系统下,安装iperf最方便的方法是直接下载rpm包,使用rpm指定安装即可。当然也可以直接去sourceforge上下载源代码,使用如下命令安装即可。#./configure#make#makeinstall前提是该机器上已经有C++编译器和make等程序。安装完成之后,可以进行一个简单的回环测试iperf是否安装成功。$iperf-s------------------------------------------------------------ServerlisteningonTCPport5001TCPwindowsize:85.3KByte(default)------------------------------------------------------------[4]local127.0.0.1port5001connectedwith127.0.0.1port35589[ID]IntervalTransferBandwidth[4]0.0-10.0sec26.3GBytes22.6Gbits/sec$iperf-c127.0.0.1------------------------------------------------------------Clientconnectingto127.0.0.1,TCPport5001TCPwindowsize:49.5KByte(default)------------------------------------------------------------[3]local127.0.0.1port35589connectedwith127.0.0.1port5001[ID]IntervalTransferBandwidth[3]0.0-10.0sec26.3GBytes22.6Gbits/seciperf测试案例介绍4.iperf主要参数iperf中的可选参数比较多,具体可以参见其用户手册。一般来说,我们在做性能测试的时候需要指定包长,不同的包长会得到不同的吞吐量,通过-l指定,而使用-b指定带宽。5.测试吞吐量,抖动和丢包率如何需要同时测试以上三个参数,那么只能通过UDP获得。使用-u参数进行UDP测试(iperf默认为TCP)。在测试的最后server端会给出一个报告。[3]local192.168.1.1port2152connectedwith192.168.101.2port56768[ID]IntervalTransferBandwidthJitterLost/TotalDatagrams[3]0.0-1.0sec1.40MBytes11.7Mbits/sec0.069ms0/14671(0%)[3]1.0-2.0sec1.40MBytes11.8Mbits/sec0.050ms0/14703(0%)[3]2.0-3.0sec1.40MBytes11.8Mbits/sec0.052ms0/14708(0%)[3]3.0-4.0sec1.40MBytes11.8Mbits/sec0.057ms0/14704(0%)[3]4.0-5.0sec1.40MBytes11.8Mbits/sec0.072ms0/14706(0%)[3]5.0-6.0sec1.40MBytes11.8Mbits/sec0.075ms0/14705(0%)[3]6.0-7.0sec1.40MBytes11.8Mbits/sec0.060ms0/14707(0%)[3]7.0-8.0sec1.40MBytes11.8Mbits/sec0.073ms0/14703(0%)[3]8.0-9.0sec1.40MBytes11.8Mbits/sec0.073ms0/14706(0%)[3]0.0-10.0sec14.0MBytes11.8Mbits/sec0.064ms0/147020(0%)要获得带宽数据,需要不断在client端增加带宽值,直到server端出现轻微的丢包为止,此时server端显示的带宽就是被测系统的吞吐量。6.测试时延那么有朋友会问,iperf不能用来测试时延,而时延又是比较重要的QOS参数,有什么办法吗?其实最简单的办法就是使用Ping程序。我们经常用它来测试特定主机能否通过IP到达,程序会按时间和反应成功的次数,估计丢包率和分组来回时间(即网络时延)。当然,如果我们能成功构造一个回环测试路径,那么测试时延就轻而易举了,我们可以使用iperf发送数据,同时结合tcpdump抓包工具,经过wireshark分析.cap文件就可以得出包来回时间,也就是往返时延。7.使用TCP测试带宽应注意的问题有时候,我们需要使用TCP来测试网络带宽。这里有一个参数需要特别注意,那就是TCP窗口大小,可以使用-w参数指定。网络通道的容量capacity=bandwidth*round-triptime而理论TCP窗口的大小就是网络通道的容量。比如,网络带宽为40Mbit/s,回环路径消耗时间是2ms,那么TCP的窗口大小不小于40Mbit/s×2ms=80kbit=10Kbytes此时我们可以查询iperf默认的TCP窗口大小来决定是否需要设置此参数,在此例中,窗口大小应设计大于10Kbytes,当然,这仅仅是理论值,在实际测试中可能需要作出调整。参数说明-s以server模式启动,eg:iperf-s-c以client模式启动,host是server端地址,eg:iperf-c222.35.11.23通用参数-f