iperf简介
iperf是一个基于Client/Server的网络性能测试工具,可以测试TCP,UDP和SCTP带宽质量,能够提供网络吞吐量信息,以及震动、丢包率,最大段和最大传输单元通统计信息,帮助我们测试网络性能,定位网络瓶颈。
iperf的好处是纯粹发包和接收,不会被硬盘、Flash等读写速度测试结果。
iperf测试结果在一定程度上反应了路由器的网络性能。
iperf3.exe –c 192.168.10.1 –p 6801 –i 1 –t 30
客户端ip为192.168.10.1,相应的端口为6801,相应的时间间隔为1秒,执行30次。
iperf功能
-
TCP和SCTP
测量带宽
报告MSS / MTU大小和观察到的读取大小
通过套接字缓冲区支持TCP窗口大小
-
UDP协议
客户端可以创建指定带宽的UDP流
测量丢包
测量延迟抖动
具备组播能力
-
跨平台:Windows,Linux,Android,MacOS X,FreeBSD,OpenBSD,NetBSD,VxWorks,Solaris,…
-
客户端和服务器可以同时具有多个连接(-P选项)
-
服务器处理多个连接,而不是在单个测试后退出
-
可以运行指定的时间(-t选项),而不是要传输一定数量的数据(-n或-k选项)
-
以指定的时间间隔(-i选项)打印定期,中间带宽,抖动和损耗报告
-
将服务器作为守护程序运行(-D选项)
-
使用代表性的流来测试链路层压缩如何影响您可实现的带宽(-F选项)
-
一台服务器同时接受一个客户端(iPerf3)同时接受多个客户端(iPerf2)
-
新增功能:忽略TCP慢启动(-O选项)
-
新增:设置UDP和(新)TCP的目标带宽(-b选项)
-
新增:设置IPv6流标签(-L选项)
-
新增:设置拥塞控制算法(-C选项)
-
新增功能:使用SCTP而不是TCP(-sctp选项)
-
新增:以JSON格式输出(-J选项)
-
新增:磁盘读取测试(服务器:iperf3 -s
-
客户端:iperf3 -c testhost -i1 -F文件名)
-
新增:磁盘写测试(服务器:iperf3 -s -F文件名/客户端:iperf3 -c testhost -i1)
iperf下载地址
1.官网
https://iperf.fr/iperf-download.php
2.windows 64位
https://iperf.fr/download/windows/iperf-3.1.3-win64.zip
3.ubuntu
sudo apt-get install iperf3
4.iperf源码
https://github.com/esnet/iperf
5.iperf下载链接
链接地址:https://iperf.fr/iperf-download.php#fedora
安装使用
需要注意的是iperf和tcpcopy不同,只需要服务端和客户端
tar zxvf iperf-3.0b5.tar.gz
cd iperf-3.0b5
./configure
make && make install
此时就可以使用iperf命令了
1)在服务端
iperf3 -s -p 9001 ##由于公司端口限制,这里指定端接口为9001
执行以上命令后,服务端就可以和客户端建立连接
2)在客户端
iperf3 -c ip -b 2300M -n 5G -p 9001
##-c 表示指定服务器ip
##-b 表示指定带宽
##-n 表示文件大小
##-p 表示端口
如上代码段,这样即可与指定ip建立连接
结果分析
从上图可以看出
测试的时间间隔为18.71s,下载的文件大小为5G,测试出的带宽为2.30G/s。
更多的参数可以使用以下指令查看
iperf参数
iperf3 –h
常用参数
-s:服务器
-c:用户端+服务端的ip
-p:端口号
-i:时间间隔
-t:测试次数