iperf是一个网络吞吐量以及网络稳定性的测试工具iperf在使用时要成对使用,即双方都要安装iperf3,然后一端当做Server端,另一端当做Client端去连接S端,这里通常是服务器作为S端,但是如果服务器和电脑网络连通,且电脑防火墙开放相关端口,那么电脑作为S端也可以
安装
windows
直接下载附件的iperf-3.1.3-win64.zip即可使用,或者从官网下载最新的iperf版本为了方便后续使用,可以将解压后iperf3.exe所在的目录加入到系统环境变量Path中,方法如下:
先进入到系统的高级设置中
依次点击如下选项,最后将包含有iperf3.exe的文件夹路径加入到Path中即可
Centos
能连接外网的情况,直接通过yum去安装即可
yum install -y iperf3
无法连接外网的情况,手动下载附件的iperf3-3.1.7-2.el7.x86_64.rpm,并上传到服务器上以root用户身份在上传目录执行
rpm -ivh iperf3-3.1.7-2.el7.x86_64.rpm
有如下提示即表示安装成功
使用
1. 关闭防火墙
在我们的服务器上防火墙(firewall)是默认开启的,在测试前需要确保将测试的端口加入到防火墙规则中,或者将防火墙关掉例如下面的命令是将1314/tcp端口和1314/udp端口临时加入到防火墙开放端口中:
firewall-cmd --add-port=1314/tcp
firewall-cmd --add-port=1314/udp
在测试前还需要确保端口没有被监听或者占用,如果服务器上已经安装了UC服务,那么尽量选取UC服务没有用到的端口(如1314)如果从外网进行测试,那么也要在客户外网防火墙上开放相应的TCP和UDP端口
提示
无论是测试UDP还是TCP,S端相应的TCP端口都要保证能够始终访问才可以
2. 设置S端监听
iperf3 -s -i 1 -p 1314
出现如下提示,即表示监听成功-s 表示是作为监听端-i 表示打印每次结果的时间间隔,单位是秒-p 后面是要监听的端口,可以根据实际需要进行替换
3.使用C端去连接
测试TCP连接(测试网络带宽上限)
iperf3 -c 10.121.3.53 -i 1 -p 1314
测试UDP连接(测试网络稳定性)
测试C端上行,S端下行
iperf3 -c 10.121.3.53 -i 1 -p 1314 -u -b 2M
测试C端下行,S端上行
iperf3 -c 10.121.3.53 -i 1 -p 1314 -u -b 2M -R
-p 指定了Server监听的端口-u 表示使用UDP进行测试-b 是指测试时UDP的带宽速率,默认是1Mbits/s,通常根据客户侧网络带宽上限决定-R 表示是C端接收,S端发送
注意:
上述命令都没有加测试时间,默认是10s,如果需要测试更久观察稳定性,可以使用-t参数来指定,单位是秒
其他更加复杂的测试方法可以参考此篇文章iperf3使用方法详解
数据解读
对于TCP测试,你得到的结果将会是如下这样可以看到C端和S端之间的带宽是94Mbits/s左右
对于UDP测试,你得到的结果将会是如下这样重点关注下该速率(Bandwidth)下,是否出现丢包(后面的百分比)的情况,如果有出现丢包(Lost),则说明网络可能不够稳定
其他一些参数说明如下:
Interval表示时间间隔
Transfer表示时间间隔里面转输的数据量 1Byte=8bits
Bandwidth是时间间隔里的传输速率
Total Datagrams是发送或者接收的数据包数量
iperf-3.1.3-win64.zip