简介
iperf命令是一个网络性能测试工具,可以测试TCP和UDP带宽质量。同时也可以通过UDP测试报告网丢包率或者发包性能,是一个非常实用的工具
下载
https://iperf.fr/iperf-download.php
针对TCP进行带宽性能测试
服务端命令:iperf -s -i 1 -p 3389
客户端命令:iperf -c 172.19.16.97 -p 3389 -i 1
当然也可以不指定端口号和报告间隔:
服务端:iperf -s
客户端:iperf -c 172.19.16.97
参数小结:
-s 以服务端的模式启动iperf
-c 以客户端的的形式启动iperf
-t 指定测试时长,后面的数字代表秒数,上面的例子是持续测试30s
-i 指定报告的间隔时间,上例是每5秒输出一次测试结果
-d 同时进行上下行带宽测试。
-L 用来指定服务端反向连接客户端的端口(即客户端同时作为服务端,提供的可连接端口)
-w 指定窗口大小进行测试
针对UDP进行带宽性能测试
带宽性能压测通常采用udp模式,因为能测出极限带宽、时延抖动、丢包率。在进行测试时,首先以链路理论带宽作为数据发送速率进行测试,例如,从客户端到服务器之间的链路的理论带宽为100Mbps,先用-b 100M进行测试,然后根据测试结果(包括实际带宽,时延抖动和丢包率),再以实际带宽作为数据发送速率进行测试,会发现时延抖动和丢包率比第一次好很多,重复测试几次,就能得出稳定的实际带宽。
服务端命令:
iperf -u -s
客户端命令:
iperf -u -c 10.0.0.14 -b 1000M -i 3
参数小结:
-b:设置UDP的发送带宽,单位bit/s
网络收发包性能测试
通过UDP发包测试不仅可以通过-b xxxM的形式测试带宽性能情况,还可以通过-b xxxpps测试收发包性能。
网络收发包量的测试同时还会受到缓冲区大小的影响,默认的缓冲区比较小的话,会造成服务器到达高pps丢包的现象,这里建议在测试前调整下缓冲区大小;同时由于UDP默认发包大小为1470字节,在发包量很高的情况会超出服务器的带宽限制,所以这里需-l 指定发包大小,本次测试采用-l 100bit
1、调整UDP缓冲区大小
vi /etc/sysctl.conf
添加
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
然后执行sysctl -p 使得参数生效
sysctl -p