欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

在Ubuntu Linux环境下使用Netperf测试硬件网卡速度

最编程 2024-02-04 21:44:06
...

ubuntu 网卡网速测试bondnetperf测试优化tcp

一、测试环境
1.用千兆网线把server和client的机器直接连接在一起;
2.关闭两台机器的iptables;
3.server端执行netserver,client端执行

实例
测两台已经做好bond4的x520网卡的速度

netperf -P 0 -v 0 -H $ip -i 10,2 -I 99,10 -t -- -m 64 -s 32768 -S 32768(其中$ip为server端ip)。

二、优化前

测试3次平均分为833.41分。

三、优化后

在server端/etc/sysctl.conf添加一行

 net.ipv4.tcp_adv_win_scale=2

执行sysctl -p使其生效后再进行测试。

测试3次平均分为940.53分。

在tcp连接中,对于接收端的读缓存而言,接收到一个来自对端的tcp报文时,会使读缓存增加;当接收端的进程读取tcp流时,会使读缓存减少。netperf测试过程中server端接收tcp报文的速率受限于读缓存中实际存放tcp报文缓冲区的大小,这是因为server端进程读取tcp流的速率小于server端接收tcp报文的速率,而这会导致缓冲区逐步被占满。当缓冲区达到上限后,则不会再接收新的报文,进而限制接收tcp报文的最大速率。由此分析将net.ipv4.tcp_adv_win_scale由1改为2后分数的提升,改为2后相当于接收端读缓存实际用来存放tcp报文的缓冲区增加,从而提升接收tcp报文的速率。这与增大测试命令中-s、-S值的效果相同,而测试发现增大-s、-S的值确实会提升测试分数。

下面是测试截图

在这里插入图片描述
在这里插入图片描述
装包netperf

在这里插入图片描述
安装后查看自己的速度
在这里插入图片描述
下面开始测速
注:两台都需要装包,netperf 一台为服务端,一台为客户端

Server 端开启netserver 服务
Client 端根据对应的端口进行netperf测试
服务端:netserver -p 18887
客户端:netperf -H 10.22.11.84 -l 10 -p 18887  (目标IP 10秒测速)

推荐阅读