持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第5天,点击查看活动详情
iperf3 网络测试工具
Iperf3 是一个网络性能测试工具。Iperf可以测试最大TCP和UDP带宽性能,具有多种参数和UDP特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失.对于每个测试,它都会报告带宽,丢包和其他参数
1. 安装iperf3
在 CentOs 上使用以下命令安装即可:
# yum install iperf3
在 Ubuntu 上使用以下命令安装:
# apt-get install iperf3
在 mac 上安装
# brew install iperf3
以mac为例:
2.网络带宽测试
iperf3 采用C/S(客户端/服务端)架构模式,在使用iperf3测试时,要同时在server端与client端都各执行一个程序,让它们互相传送报文进行测试。\
本文以mac系统为例进行演示:
-
首先在本地启动 server端的程序
iperf3 -s
-
接着启动client端的程序
iperf3 -u -c 127.0.0.1 -b 100M -t 10 --get-server-output
从打印的内容看,Client将连接Server端的5201端口,持续向Server端发送数据,并统计出每秒传输的字节数、带宽、出现报文重传的次数、拥塞窗口(Congestion Window)大小,整个测试将持续10s;最后将汇总10s的平均数据,并给出发送和接收端的统计。
-
结果分析:
· 第一列 Interval :测试的时长
· 第二列 Transfer :在 interval 时长里,传输的数据量
· 第三列 Bitrate :传输速率
· 第四列 Jitter :网络抖动,连续发送数据包时延差的平均值,越小说明网络质量越好
· 第五列 Lost/Total Datagrams:丢失的数据包与发送的总数据包
此示例的丢包率可以看到为 0.17% 是因为限制了 100M的限速
-
常见的参数命令
-u
:发送 UDP 包,仅客户端可用,服务端默认 tcp udp 都可以接收-b
:指定发送速率(比如 100M),发送端不受限速影响,如果有限速,也只是接收端有影响-p
:服务端监听的端口-i
:设置带宽报告的时间间隔,单位为秒-t
:设置测试的时长,单位为秒-w
:设置tcp窗口大小,一般可以不用设置,默认即可-B
:绑定客户端的ip地址-4
:指定 ipv4-n
:指定传输的字节数-f
:格式化带宽数输出,后接单位,比如 K,M--get-server-output
:在客户端直接获取服务端输出的结果
服务端命令行:
-s
:表示服务器端-p
:定义端口号;-i
:设置每次报告之间的时间间隔,单位为秒,如果设置为非零值,就会按照此时间间隔输出测试报告,默认值为零
客户端命令行:
-c
:表示服务器的ip地址