iperf 测试带宽

之前被要求测试网卡带宽能力,发现了 iperf 这个工具,记录下来防止遗忘。
iperf 是个开源跨平台测试带宽工具,windows、linux、macOS …… 都支持,安装也挺方便。

安装

地址:https://iperf.fr/

测试

参看:https://www.52os.net/articles/iperf-check-bandwidth.html

无论是 tcp 还是 udp 方式测试,都要一端运行服务器模式,另一端运行客户端模式,另外如果开了 iptables,要打开 tcp 5001 端口,当然也可以指定端口。

tcp 方式

服务器端
iperf –s
客户端
单线程
iperf -c SERVERIP -t 60 -i 1
多线程
iperf -c SERVERIP -t 60 -i 1 -P 5

udp 方式

服务器端
iperf -u –s
客户端
iperf -c SERVERIP -t 60 -i 1 -b 100M

遇到的问题

防火墙要关闭

我使用 win8 和 centos 测试,开始 ping 不通 win8,后来发现 win8 的防火墙没关,关上就好了……
后来又发现 win8 只能做服务端,如果作为客户端,centos 就收不到数据,才发现 centos 也有默认的防火墙……

关闭防火墙服务
systemctl stop firewalld
关闭后 centos 就可以作为服务端了

带宽测不满

我测试两边都是千兆网卡,第一次测试大概 900Mbps 多,但是后来就变为 95Mbps,这是怎么回事?
开始以为是 iperf 版本问题,换了也还是不行,后来发现原来是网络有自动协商功能,而我查看本地连接自动协商结果为 100Mbps,这样带宽当然不会超过 100Mbps 了,然后我修改自动协商为固定 1000Mbps 双工
win8设置:网络连接->适配器->属性->网卡配置->高级->速度和双工->1.0Gbps

cenos 设置:
查看详细信息
ethtool eno1
设置禁用自动协商设定固定速度和工作方式
ethtool -s ethx autoneg off speed 1000 duplex full
但是可悲的是以上设置完成,网络就连不上了链路层就探测不到了,不知道是不是 win8 和 cenos 不兼容?


iperf 测试带宽
https://wishlily.github.io/article/tools/2015/06/28/undefined/
作者
Wishlily
发布于
2015年6月28日
许可协议