简介

Iperf 是一个网络性能测试工具,可以测试最大TCP和UDP带宽性能,具有多种参数和UDP特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失。

官网地址:iPerf - Download iPerf3 and original iPerf pre-compiled binaries

服务端:192.168.26.200

客户端:192.168.26.201

一、服务端 

1、安装

yum install iperf3

2、启动

iperf3 -s -D
二、客户端

1、安装 

yum install iperf3

2、测试

iperf3 -c 192.168.26.200
三、参数

1、服务端参数:

命令行参数

含义描述

-s

将iperf以server模式启动,例如:iperf3 –s,iperf3默认启动的监听端口为5201,可以通过“-p”选项修改默认监听端口

-D

将iperf作为后台守护进程运行,例如:iperf3 -s -D

2、客户端参数

命令行参数

含义描述

-c

将iperf以client模式启动

例如:iperf3 -c 192.168.26.20,其中192.168.26.200是server端的IP地址

-u

指定使用UDP协议

-b [K|M|G]

指定UDP模式使用的带宽,单位bits/sec。此选项与“-u”选项相关。默认值是1 Mbit/sec

-t

指定传输数据包的总时间。iperf将在指定的时间内,重复发送指定长度的数据包。默认是10秒钟

-n [K|M|G]

指定传输数据包的字节数,例如:iperf3 -c 192.168.26.200 –n 100M

-l

指定读写缓冲区的长度。TCP方式默认大小为8KB,UDP方式默认大小为1470字节

-P

指定客户端与服务端之间使用的线程数。默认是1个线程。需要客户端与服务器端同时使用此参数

-R

切换数据发送接收模式,例如默认客户端发送,服务器端接收,设置此参数后,数据流向变为客户端接收,服务器端发送

-w

指定套接字缓冲区大小,在TCP方式下,此设置为TCP窗口的大小。在UDP方式下,此设置为接受UDP数据包的缓冲区大小,用来限制可以接收数据包的最大值

-B

用来绑定一个主机地址或接口,这个参数仅用于具有多个网络接口的主机。在UDP模式下,此参数用于绑定和加入一个多播组

-M

设置TCP最大信息段的值

-N

设置TCP无延时

3、服务端与客户端共用参数

命令行参数

含义描述

-f [k|m|g|K|M|G]

指定带宽输出单位,“[k|m|g|K|M|G]”分别表示以Kbits, Mbits, Gbits, KBytes, MBytes,GBytes显示输出结果,默认以Mbits为单位,例如:iperf3 -c 192.168.26.200 -f M

-p

指定服务器端使用的端口或客户端所连接的端口,例如:

iperf3 -s -p 9527;

iperf3 -c 192.168.26.200 -p 9527

-i

指定每次报告之间的时间间隔,单位为秒。如果设置为非零值,就会按照此时间间隔输出测试报告。默认值为1。

例如:iperf3 -c 192.168.26.200 -i 2

-F

指定文件作为数据流进行带宽测试。

例如:iperf3 -c 192.168.26.200 -F web-ixdba.tar.gz

4、测试TCP

[root@kvm201 ~]# iperf3 -c 192.168.26.200 -n 1000M

# 输出
Connecting to host 192.168.26.200, port 5201
[  4] local 192.168.26.201 port 47668 connected to 192.168.26.200 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec   217 MBytes  1.82 Gbits/sec    0    810 KBytes       
[  4]   1.00-2.00   sec   281 MBytes  2.36 Gbits/sec    0   1.69 MBytes       
[  4]   2.00-3.00   sec   325 MBytes  2.73 Gbits/sec    7   1.41 MBytes       
[  4]   3.00-3.45   sec   178 MBytes  3.29 Gbits/sec    0   1.47 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-3.45   sec  1001 MBytes  2.43 Gbits/sec    7             sender
[  4]   0.00-3.45   sec  1000 MBytes  2.43 Gbits/sec                  receiver

Interval:花费的时间

Transfer:传输的大小

Bandwidth:网卡的传输速率

上述测试发送1000M数据时相关信息

5、测试UDP

[root@kvm201 ~]# iperf3 -c 192.168.26.200 -u -b 200M -t 5
Connecting to host 192.168.26.200, port 5201
[  4] local 192.168.26.201 port 55288 connected to 192.168.26.200 port 5201
[ ID] Interval           Transfer     Bandwidth       Total Datagrams
[  4]   0.00-1.01   sec  22.5 MBytes   187 Mbits/sec  16312  
[  4]   1.01-2.00   sec  23.5 MBytes   200 Mbits/sec  17022  
[  4]   2.00-3.00   sec  23.7 MBytes   199 Mbits/sec  17185  
[  4]   3.00-4.00   sec  24.5 MBytes   205 Mbits/sec  17739  
[  4]   4.00-5.00   sec  23.3 MBytes   196 Mbits/sec  16879  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  4]   0.00-5.00   sec   118 MBytes   197 Mbits/sec  0.023 ms  683/85137 (0.8%)  
[  4] Sent 85137 datagrams

Interval表示时间间隔。Transfer表示时间间隔里面转输的数据量。Bandwidth是时间间隔里的传输速率。

jitter :抖动,网络中的延迟是指信息从发送到接收经过的延迟时间,一般由传输延迟及处理延迟组成。而抖动是指最大延迟与最小延迟的时间差,如最大延迟是20毫秒,最小延迟为5毫秒,那么网络抖动就是15毫秒,它主要标识一个网络的稳定性。

packet loss:丢包率,封包在传送过程中因不明原因无法让接收者收到,丢失的封包就是 packet loss。

最后一行是本次测试的统计。测试可知带宽平均为197Mbit/s。