Iperf3是一款运行于windows命令行环境下的网络带宽流量测试软件,所以它的安装方式不同于其他使用.msi安装文件进行安装的软件。安装步骤如下:
打开Iperf官方下载网页:https://iperf.fr/iperf-download.php,如下图所示:
根据测试的操作系统类型进行选择,本例中选择windows系统版本。如下图所示:
根据操作系统的位数选择下载最新的安装包。下载完成后的几个安装文件包,下面以64位操作系统为例,解压并打开对应64位操作系统的文件夹,可以看到有两个文件:
全选并复制这两个文件,打开资源管理器,然后点击窗口上方的路径栏,输入“%systemroot%” ,按下回车键;或者按组合键win+R打开“运行”,输入“%systemroot%” ,按下回车键。
会转到C:\Windows路径之中(不保证全部计算机都是如此,尤其是修改过环境变量之后,但不影响接下来的安装),点击鼠标右键,将之前的两个文件粘贴到该路径之中,如果弹出UAC权限警告,点击“是”即可。安装完成。
将C:\Windows\iperf3.exe添加到系统环境变量下
WIN+R打开cmd,输入iperf3 -v ,显示下述版本号
二、打流 当PC1和PC2相互打流,我在PC1使用使用Linux系统(deepin),PC2使用Windows系统(系统无所谓,命令一点点差异);
拓扑如下:
前提条件:PC1和PC2可以ping通
windows系统要进入到iperf3工具的目录下输入命令
1.当PC1—>PC2
PC1当客户端(ip10.10.10.10),PC2当服务器(192.168.0.148)
首先设置PC2,打开终端,设置为服务端 且端口设置为5302 如不设置端口默认端口为5201
iperf3.exe -s -p 5302
PC1打开终端输入命令
sudo iperf3 -c 192.168.0.148(服务器地址) -p 5302(端口) -t 10000s (打多久) -i 1s (间隔) -b 10M (打多少流量)
流量就可以建立起来了
三、实验 实验①:单线程测试通过 TCP 流量测试链路带宽(上传)
服务端:100.1.1.1(100M)
客户端:100.1.1.2(100M)
打开cmd,进入iperf的目录,服务端的电脑在相应路径输入iperf3 -s ,将自己设置为服务端,默认监听端口为5201,
可以通过-p参数设置自己想要的端口
服务端配置如下:
客户端设置:iperf3 -c 100.1.1.1
参数说明:
-c 表示以客户端方式启动 iperf,对 iPerf 服务器IP 100.1.1.1 进行测试
-t 打流的时长,默认为10秒
-i 打流的间隔,默认间隔为 1 秒
-p 服务端的监听端口,默认为5201,如果服务端设置了其它的,客户端需要通过此参数设置
Interval 代表打流的间隔,默认间隔为 1 秒
Transfer 代表打流的大小,单位为字节
Bandwidth 代表每秒打流的流量,单位为比特
从最后两行的Bandwidth(为平均值) 可以看出该链路到服务端上传流量实际压测为95.1M 每秒
实验②:单线程测试通过 TCP 流量测试链路带宽(下载)
客户端设置:iperf3 -c 100.1.1.1 -R
重复的参数这里不做描述,只更新新的参数
-R 代表打回传的流量
从最后两行的Bandwidth(为平均值) 可以看出该链路到服务端下载流量实际压测为94.8M 每秒
实验
实验③:多线程测试通过 TCP 流量测试链路带宽(通过多线程可以更好的测试带宽的实际速度)
PS:有些应用场景单线程测试达不到实际带宽,甚至更小,建议使用多线程测试
客户端设置:iperf3 -c 100.1.1.1 -P 10
-P 代表线程的数量,默认是1,此次我设置为10
从最后两行的Bandwidth(为平均值) 可以看出该链路到服务端流量实际压测为95.9M 每秒
其它的还有UDP的测试方式,这里就不一一描述了,命令如下:
iperf3 -u -c 100.1.1.1 -b 100M
-u 代表打UDP流量
-b 表示估计带宽,就是最高能跑多少, 100M代表打每个间隔打100M的流量
唯一新增的就是下面多出来的一些参数
Jitter 代表网络抖动
Lost 代表丢包的数量
Total 代表你打了多少UDP的包
Datagrams 是Lost和Total的百分比
四、实战
1、测试TCP吞吐量:
服务端: iperf3.exe -s
客户端: iperf3.exe -c 10.0.0.25 -P 5 -i 2 -t 30
我们可以看到,TCP的最大吞吐为940M左右。
在windows自带的性能查看工具为970M左右,大体一致。
通过Wireshark抓包,可以发现测试的包全是TCP协议。
此次测试符合预期。
2、UDP测试 服务端: iperf3.exe -s
客户端:iperf3.exe -u -c 10.0.0.25 -b 1000M -t 30
我们可以看到,UDP最大性能也在970左右, 抓包发现全是DUP协议,注意,默认发送的是8192个字节,由于以太网帧最多传输1518字节,所以进行了切片。8192/1480=5.5,所以一次发送需要6个包。
四、总结
iper3是一个轻量级的网络性能测试工具,与chariot相比,简单很多,灵活性高,不需要安装。测试2.5G和10G都可以使用。