http://blog.chinaaet.com/telantan/p/30901
https://boke.wsfnk.com/archives/288.html
https://www.ibm.com/developerworks/cn/linux/l-netperf/index.html
iperf 和 netperf 都可以用来进行网络测试
iperf 是一个 TCP/IP 和 UDP/IP 的性能测量工具,能够提供网络吞吐率信息,以及震动、丢包率、最大段和最大传输单元大小等统计信息;从而能够帮助我们测试网络性能,定位网络瓶颈。
一、安装iperf
iperf是一个常用的网络性能测试工具,本文主要介绍iperf的移植的过程,最终简单利用iperf测试Zedboard上的千兆以太网性能。
在官网下载源码:https://github.com/esnet/iperf
这里使用的是最新版本Iperf3,和旧的Iperf有些区别。
Host宿主端安装
解压到相应文件夹,进入目录执行./configure
./configure
这里需要使用g++编译器,因此执行which g++看看是否可以找到g++
重新执行安装操作,
./configure make sudo make install
sudo ldconfig
确认iperf是否正常安装上
Target客户端移植
make clean
//注意这里编译器只需要前缀,而不是arm-linux-gnueabi-g++
./configure --prefix=/home/pp/11/iperf/iperf-master/rootfs --host=arm-linux-gnueabi
make
最后在输出文件下查看:
之后即可移植测试。
二、测试iperf
使用方式:客户端模拟像服务器端发送数据,服务器端接收数据,最终生成接收情况、丢包率等.
iperf参数介绍:
#常用公共参数 -i 2 #表示每2秒显示一次报告 -w 80k #对于TCP方式,此设置为TCP窗口大小。对于UDP方式,此设置为接受UDP数据包的缓冲区大小,限制可以接受数据包的最大值 -B 192.168.122.1 #绑定到主机的多个地址中的一个。对于客户端来说,这个参数设置了出栈接口。对于服务器端来说,这个参数设置入栈接口。这个参数只用于具有多网络接口的主机。 #在Iperf的UDP模式下,此参数用于绑 定和加入一个多播组。使用范围在224.0.0.0至239.255.255.255的多播地址 #常用客户端参数 -b 100m #用于udp测试时,设置测试发送的带宽,单位:bit/秒,不设置时默认为:1Mbit/秒 -c #指定服务端ip地址 -d #同时测试上行和下行 -t 10 #设置传输时间,为10秒 -P 5 #指定发起5个线程
UDP模式测试(此模式会显示数据包丢失情况)
服务端 iperf -u -s # -u表示以udp模式运行,-s表示作为服务端 客户端 iperf -u -c 192.168.122.1 -b 100M -t 60 -i 2 #解释:在udp模式下,以100Mbps为数据发送速率,客户端到服务器192.168.1.1上传带宽测试,测试时间为60秒 iperf -u -c 192.168.122.1 5M -P 30 -t 6 #客户端同时向服务器端发起30个连接线程,以5Mbps为数据发送速率 iperf -u -c 192.168.122.1 -b 100M -d -t 60 #以100M为数据发送速率,进行上下行带宽测试
更正:iperf3 服务器端不再有-u选项
服务器端:
iperf3 -p 8000 -s -i 1
参数说明: -p : 端口号 -s : 标示服务端 -u : 标示udp协议 -i : 检测的时间间隔(单位:秒)
在客户端
客户端:
iperf3 -u -c 113.54.158.252 -p 8000 -i 1 -b 10M
参数说明: -c : 服务端的ip地址 -p : 端口号 -u : 标示udp协议 -b : 每一次发送的数据大小 -t : 总的发送时间(单位:秒) -i : 发送数据的时间间隔(单位:秒) -P : 表示线程个数,不指定则默认单线程
从左至右依次为: 线程id 时间 接收数据大小 每秒大小 延时 丢包/总包 丢包率
TCP模式下网络测试:
服务器端: iperf3 -p 8000 -s -i 1 参数说明: -p : 端口号 -s : 标示服务端 -u : 标示udp协议 -i : 检测的时间间隔(单位:秒)
TCP客户端
iperf3 -c 113.54.158.252 -p 8000 -i 1 -b 10M
客户端
iperf -c 192.168.122.1 -t 60 #在tcp模式下,客户端到服务器192.168.1.1上传带宽测试,测试时间为60秒。
iperf -c 192.168.122.1 -P 30 -t 60 #客户端同时向服务器端发起30个连接线程。
iperf -c 192.168.122.1 -d -t 60 -i 2 #进行上下行带宽测试。