之前被要求测试网卡带宽能力,发现了iperf这个工具,记录下来防止遗忘。
iperf是个开源跨平台测试带宽工具,windows、linux、macOS……都支持,安装也挺方便。
1.安装
2.测试
参看:https://www.52os.net/articles/iperf-check-bandwidth.html
无论是tcp还是udp方式测试,都要一端运行服务器模式,另一端运行客户端模式,另外如果开了iptables,要打开tcp 5001端口,当然也可以指定端口。
2.1.tcp方式
服务器端:
iperf –s
客户端:
单线程
iperf -c SERVERIP -t 60 -i 1
多线程
iperf -c SERVERIP -t 60 -i 1 -P 5
2.2.udp方式
服务器端:
iperf -u –s
客户端:
iperf -c SERVERIP -t 60 -i 1 -b 100M
3.遇到的问题
3.1.防火墙要关闭
我使用win8和centos测试,开始ping不通win8,后来发现win8的防火墙没关,关上就好了……
后来又发现win8只能做服务端,如果作为客户端,centos就收不到数据,才发现centos也有默认的防火墙……
关闭防火墙服务
systemctl stop firewalld
关闭后centos就可以作为服务端了
3.2.带宽测不满
我测试两边都是千兆网卡,第一次测试大概900Mbps多,但是后来就变为95Mbps,这是怎么回事?
开始以为是iperf版本问题,换了也还是不行,后来发现原来是网络有自动协商功能,而我查看本地连接自动协商结果为100Mbps,这样带宽当然不会超过100Mbps了,然后我修改自动协商为固定1000Mbps双工
win8设置:网络连接->适配器->属性->网卡配置->高级->速度和双工->1.0Gbps
cenos设置:
查看详细信息
ethtool eno1
设置禁用自动协商设定固定速度和工作方式
ethtool -s ethx autoneg off speed 1000 duplex full
但是可悲的是以上设置完成,网络就连不上了链路层就探测不到了,不知道是不是win8和cenos不兼容?