宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

带宽测试工具-iperf3
iperf3是一款带宽测试工具,它支持调节各种参数,比如通信协议,数据包个数,发送持续时间,测试完会报告网络带宽,丢包率和其他参数。

安装

操作系统:centos7.0
软件下载网址:https://iperf.fr/iperf-download.php(选择对应的发行版)
软件名称:iperf3-3.1.3-1.fc24.x86_64.rpm
在终端中输入命令:rpm -i iperf3-3.1.3-1.fc24.x86_64.rpm

使用方法

一台电脑本地回环测试

打开两个终端t1和t2
在t1中输入命令:

iperf3 -s

在t2中输入命令:

iperf3 -c 127.0.0.1 -t 5

[*]本例中t2向t1发送5秒中的数据包

两台电脑之间发包测试

在电脑A中打开终端t1,在电脑B中打开终端t2,确保两台电脑在同一个局域网中假设t1的IP地址为192.168.1.123,t2的IP地址为192.168.1.124
在t1中输入命令:

iperf3 -s

在t2中输入命令:

iperf3 -c 192.168.1.123 -t 5

测试内容

测试TCP吞吐量

1、先让B(外)做server端,开启iperf服务器模式,指定TCP端口1314:

#iperf3 -s -i 1 -p 1314

2、然后打开A(内)做client端,连接服务器端1314端口:

#iperf3 -c 10.10.0.2 -i 1 -t 60 -p 1314

测试UDP吞吐量

1、B(外)server端开启iperf的服务器模式:

#iperf3 -s -i 1 -p 1314

2、A(内)client端启动iperf的客户端模式,连接服务器端:

#iperf3 -u -c 10.10.0.2 -b 100m -t 60 -p 1314

进行上下行带宽测试(TCP双向传输)

#iperf3 -c 192.168.0.120 -d -t 60

测试多线程TCP吞吐量

如果没有指定发送方式,iPerf客户端只会使用单线程。

#iperf3 -c 192.168.0.120 -P 30 -t 60

测试多线程UDP吞吐量

如果没有指定发送方式,iPerf客户端只会使用单线程。

#iperf3 -u -c  192.168.1.1 -b 5M -P 30 -t 60

测试上下行带宽(UDP双向传输)

#iperf3 -u -c  192.168.1.1 -b 100M -d -t 60

常用参数

iperf3常用参数(测试足够了)

(1)-s,--server:iperf服务器模式,默认启动的监听端口为5201,eg:iperf -s(2)-c,--client host:iperf客户端模式,host是server端地址,eg:iperf -c 222.35.11.23(3)-i,--interval:指定每次报告之间的时间间隔,单位为秒,eg:iperf3 -c 192.168.12.168 -i 2(4)-p,--port:指定服务器端监听的端口或客户端所连接的端口,默认是5001端口。(5)-u,--udp:表示采用UDP协议发送报文,不带该参数表示采用TCP协议。(6)-l,--len:设置读写缓冲区的长度,单位为 Byte。TCP方式默认为8KB,UDP方式默认为1470字节。通常测试 PPS 的时候该值为16,测试BPS时该值为1400。(7)-b,--bandwidth [K|M|G]:指定UDP模式使用的带宽,单位bits/sec,默认值是1 Mbit/sec。(8)-t,--time:指定数据传输的总时间,即在指定的时间内,重复发送指定长度的数据包。默认10秒。(9)-A:CPU亲和性,可以将具体的iperf3进程绑定对应编号的逻辑CPU,避免iperf进程在不同的CPU间调度。

问题

但是这样测试出来的网卡带宽是远远达不到iperf工具测试出的结果,这是因为iperf3 是不支持多线程的,与iperf 通过-P 参数增加数据并行流开启多线程不同,iperf3 增加-P 参数也是单线程的,测试过程中所有并行流运行与同一个CPU核心,这将限制我们获得最大的带宽测试结果,为了解决这一问题,可以增加iperf3的进程,修改命令如下:

Server 端 :iperf3 -s -p 5201 & iperf3 -s -p 5202 & iperf3 -s -p 5203&

Client 端 : iperf3 -c $ip -i 5 -t 100 -P 11 -p 5201 &

                iperf3 -c $ip  -i 5 -t 100 -P 11 -p 5202 & iperf3 -c $ip  -i 5 -t 100 -P 11 -p 5203 & 

windows系统,需要逐个窗口打开

Server 端 :
iperf3 -s -p 5201  
iperf3 -s -p 5202 
iperf3 -s -p 5203
iperf3 -s -p 5204
iperf3 -s -p 5205Client  端 : 
iperf3 -c 10.10.8.254  -i 5 -b 4G -t 100 -P 1 -p 5201 
iperf3 -c 10.10.8.254  -i 5 -b 4G -t 100 -P 1 -p 5202 
iperf3 -c 10.10.8.254  -i 5 -b 4G -t 100 -P 1 -p 5203 
iperf3 -c 10.10.8.254  -i 5 -b 4G -t 100 -P 1 -p 5204
iperf3 -c 10.10.8.254  -i 5 -b 4G -t 100 -P 1 -p 5205