Iperf是一个网络性能测试工具。Iperf可以测试TCP和UDP带宽质量。Iperf可以测量最大TCP带宽,具有多种参数和UDP特性。 Iperf可以报告带宽,延迟抖动和数据包丢失。利用Iperf这一特性,可以用来测试一些网络设备如路由器,防火墙,交换机等的性能。
Iperf的主要功能如下:
TCP
测量网络带宽
报告MSS/MTU值的大小和观测值
支持TCP窗口值通过套接字缓冲
当P线程或Win32线程可用时,支持多线程。客户端与服务端支持同时多重连接
UDP
客户端可以创建指定带宽的UDP流
测量丢包
测量延迟
支持多播
当P线程可用时,支持多线程。客户端与服务端支持同时多重连接(不支持Windows)
用Iperf测试网卡的性能
使用82573做服务端,sail-imx6q做客户端。
测试单线程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是时间间隔里的传输速率。最后一行是本次测试的统计。测试可知带宽平均为425Mbit/s。
2.测试多线程TCP
在客户端添加-P参即可测试多线程的TCP性能,如下为使用两个线程的测试情况
测试后截图如下:
客户端截图
服务端截图
3.测试单线程UDP(默认带宽)
在服务端运行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为包数量。
4.测试单线程UDP(带宽为100Mbit/s)
设置客户端带宽为100M即可,使用参数-b指定
测试后截图如下:
客户端截图
服务端截图
5.测试单线程UDP(带宽为1000Mbit/s)
设置客户端带宽为1000M即可,使用参数-b指定
测试后截图如下:
客户端截图
服务端截图
6.测试多线程UDP
与多线程TCP类似,只需要客户端使用-P参数指定线程个数即可
7.测试UDP的双向传输
客户端使用参数-d以运行双测试模式,客户端会与服务端进行udp往返测试。可以使用-L参数指定本端双测试监听的端口。
测试后截图如下所示:
客户端截图
服务端截图
8.测试UDP往复传输
与双向传输类似,使用参数-r以运行交互模式,仍然可以使用-L参数指定交互的端口。
客户端截图
服务端截图