1.iperf是什么
iPerf3是用于主动测量IP网络上可达到的最大带宽的工具。它支持与时序,缓冲区和协议(TCP,UDP,带有IPv4和IPv6的SCTP)相关的各种参数的调整。对于每个测试,它都会报告带宽,损耗和其他参数。这是一个新的实现,它与原始iPerf不共享任何代码,并且也不向后兼容。iPerf最初是由NLANR / DAST开发的。iPerf3主要由ESnet / Lawrence Berkeley国家实验室开发。它以三条款BSD许可证发行。
2.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)
3.iperf下载链接
链接地址:https://iperf.fr/iperf-download.php#fedora
生产环境使用的是centos系统
4.安装使用
需要注意的是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建立连接
5.结果分析
从上图可以看出
测试的时间间隔为16.88s,下载的文件大小为5G,测试出的带宽为2.54G/s。
更多的参数可以使用以下指令查看