Iperf 是一个网络性能测试工具。Iperf可以测试最大TCP和UDP带宽性能,具有多种参数和UDP特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失。
官网下载链接: https://iperf.fr/iperf-download.php
-w: --window #[KMG] set window size / socket buffer size
-i: 上报时间间隔
-P: 线程数
-B: 监听本机的IP
-t: 测试时间
-c: 服务端的IP
一、TCP性能测试
为了确定网卡的最大吞吐量,可以在任意客户端运行iperf命令,iperf将尝试从客户端尽可能快地向服务端发送数据请求,并且会输出发送的数据量和网卡平均带宽值。
iperf默认的运行时间是10秒钟,每隔一秒钟输出一次传输状态,同时还可以看到每秒钟传输的数据量在112MB左右,刚好与“Bandwidth”列的值对应起来,网卡的带宽速率维持在941Mbits/sec左右,而测试的服务器是千兆网卡,这个测试值也基本合理。在输出的最后,iperf还给出了总的数据发送、接收量,并给出了带宽速率平均值,通过这些值,基本可以判断网络带宽是否正常,网络传输状态是否稳定。
~~多线程对网络传输性能的提高不小
二、UDP性能测试
带宽测试通常采用UDP模式,因为能测出极限带宽、时延抖动、丢包率。
服务端命令:iperf3 -s
客户端命令:iperf3 -u -c 192.168.1.5 -b 200M
注意点:
iperf2 服务端是多进程跑的,而iperf3 服务端是单进程跑的(需要开启多个服务端)
当网卡双网口进行绑定Bond 时,iperf2或者iperf3的选择 涉及单/多进程跑性能时,可能会导致打流时性能不达标。