BPI-R4硬路由小包转发测试
本帖最后由 rx_78gp02a 于 2024-9-20 21:36 编辑摘要:BPI-R4最近很火,内置3个PPE硬件加速,遂花巨资从咸鱼购入做小包转发测试。
结论:
硬件转发有流数量限制,数量越多转发性能越低。MTK给的是128条内任意包达到线速转发,多1条都不行。
硬件转发映射表需要CPU维护,表越大更新越慢,越消耗CPU,新建能力随之降低。
新建连接会影响转发性能,原因未知。
更新:桥接不影响硬件转发,CPU占用为0
更新:ImmortalWrt非MT HWNAT转发性能不足,经测试10条流和120条流无法实现线速转发,结果都为4.6Mpps,1W流由2.05Mpps降低为0.4Mpps
测试方法1:多流转发,无新增Flow,UDP单向发包。
100流硬件转发,单向14.83Mpps,CPU占用0%。
128流硬件转发,单向14.87Mpps,CPU占用0%。
129流硬件转发,单向9Mpps,CPU占用0%。
130流硬件转发,单向8.6Mpps,CPU占用0%。
135流硬件转发,单向6.23Mpps,CPU占用0%。
150流硬件转发,单向4.55Mpps,CPU占用0%。
200流硬件转发,单向3.8Mpps,CPU占用0%。
1K流硬件转发,单向2.5Mpps,CPU占用3.3%。
2K流硬件转发,单向2.5Mpps,CPU占用0.7%。
3K流硬件转发,单向2.32Mpps,CPU占用4%。
4K流硬件转发,单向2.28Mpps,CPU占用1.3%。
5K流硬件转发,单向2.22Mpps,CPU占用1.3%。
6K流硬件转发,单向2.16Mpps,CPU占用4.7%。
8K流硬件转发,单向2.15Mpps,CPU占用3.3%。
10K流硬件转发,单向2.05Mpps,CPU占用5.3%。
12K流硬件转发,单向1.99Mpps,CPU占用4.7%。
16K流硬件转发,单向1.85Mpps,CPU占用12%。
20K流硬件转发,单向1.72Mpps,CPU占用24%。
25K流硬件转发,单向1.61Mpps,CPU占用40%。
25K流硬件转发,单向1.55Mpps,CPU占用54%。
30K流硬件转发,单向1.47Mpps,CPU占用68%。
40K流硬件转发,单向1.39Mpps,CPU占用92%。
50K流硬件转发,单向0.82Mpps,CPU占用100%。
60K流硬件转发,单向0.27Mpps,CPU占用100%。
小结:
低于128可以小包线速。
高于129条性能开始下降。
20K开始CPU有明显占用。
超过10K条硬件加速容易报MIB BUSY错误,只能重启恢复。
测试方法2:多流转发,无新增Flow,无状态双向发包。
两条流硬件转发,单向14.91Mpps,双向29.82Mpps,CPU占用0%
750流硬件转发,单向3.06/3.08Mpps,双向6.56Mpps,CPU占用0%
750流软件转发,单向204/203Kpps,双向174Kpps,CPU单核爆满
小结:测试证明每个SFP口用1个PPE,双向叠加。
测试方法3:新建NAT能力测试,仅供参考
10K流500新增,CPU 60%,实际新增445
20K流1K新增,CPU 68%,实际新增534
20K流2K新增,CPU 100%,实际新增894,NAT超时
40K流3K新增,CPU 100%,实际新增892,NAT超时
小结:
系统连接跟踪共10W条,不能长时间测试,非常容易爆满炸掉,只能重启恢复。
测试中CPU占用随着连接数增加而增加,新建能力随之下降,使用2K和3K模板实际新增只有每秒890条。
测试显示一次写入NAT的速度很快(测试1),但更新的速度慢(已有flow并追加或删除),更新过程影响转发速率。有双向通讯比如TCP还会更慢。
图太多就随便放几张了,才发现图被压缩得几乎看不见里面的字。
(因为部分测试丢包,显示的Mpps值不是实际值,Mpps计算方式为Total-RX / 512Mbps,标准为1Mpps=512Mbps)
128条流转发,单向14.87Mpps,CPU占用0%,实现小包线速转发,牛逼plus
129条流转发,单向9Mpps,CPU占用0%,规格书写128条流任意包线速转发,真的是多一条都不行。
1K条流转发,单向2.5Mpps,CPU占用3.3%,性能降的有点多。
4K条流转发,单向2.28Mpps,CPU占用1.3%
10K条流转发,单向2.05Mpps,CPU占用5.3%
40K条流转发,单向1.39Mpps,CPU占用92%,CPU开始爆满了。
60K条流转发,单向0.27Mpps,CPU占用100%,CPU爆掉了。
2条流双向转发,单向14.91Mpps,双向29.82Mpps,实现双向小包线速转发,CPU 0%占用,牛逼plus
750条流双向转发,单向3.06/3.08Mpps,双向6.56Mpps,CPU占用0%,流稍微多点性能就跌了
10K流500新增,CPU 60%,实际新增445(见Total-CPS栏),新建NAT还是很消耗CPU的
20K流1K新增,CPU 68%,实际新增534(见Total-CPS栏)
20K流2K新增,CPU 100%,实际新增894(见Total-CPS栏),NAT超时
40K流3K新增,CPU 100%,实际新增892(见Total-CPS栏),NAT超时
MTK给的参数是128条流任意包线速转发,真的多一条都不行
bpi r4用户,日常家用,只能说,牛逼plus 家用soc的硬件加速被过于神话,它没有足够的连接跟踪,也没有优秀的并发能力应付大型网络,即使强如高通的nss也明确说明是给家用网关使用。 话说小包一般体现和运用在哪里?
我只知道CPU性能会很明显的影响加解密性能 本帖最后由 hasuboy 于 2024-9-19 22:36 编辑
这种测试对于那些重度P2P用户很有意义,所以产品本身的定位真的不能忽视,很赞同你那句“家用SOC的硬件加速被过于神话”,定位摆在那里,价格也摆在那里,像国内我用过华三的MSR系列和ruijie的NBR系列都是马牌的SOC,我之前还去查阅过不少资料,以前linksys家的产品还能见到马牌的SOC,现在linksys也没了,国内基本见不到了,好像威联通那个路由是用的马牌的?ruijie定位SMB的EG系列包括他的家用系列清一色用的联发科的方案,也算是和发哥深度合作了,为什么到了更高定位的NBR不用了我想肯定有他的道理,企业级的SOC除了要支持一些企业级所需的高级特性外,相信性能方面还是有自己独到之处。我倒不是说发哥的芯片不行,就价格来说发哥对比博通高通算是比较亲民的了,但定位摆在这里,真的不能过于神话。 这测试牛逼,希望能堵住某些无脑吹的嘴[偷笑] 这板子搞很多sim卡槽就没看懂。。。 continuing 发表于 2024-9-19 22:02
话说小包一般体现和运用在哪里?
我只知道CPU性能会很明显的影响加解密性能 ...
翻了下公司最近一天的网络使用状况,最高峰没超过60Kpps,连接数没超过4K,总共150台设备。
看了下家里最近一个月的记录,最高峰没超过140Kpps,连接数最高2W7,总共6台终端。
结论:小包这种东西对一般人来说没有意义,只是很多人没测过,喜欢隔空比武,只要没上擂台,他可能是泰森,也可能是马保国。 关于测试,可否以MikroTik口径一样的数据?? 这样好横向对比,这就很好与 RB5009UG+S+IN 对比,毕竟这也是个不错的,不少用户已购设备。
myway 发表于 2024-9-20 08:37
关于测试,可否以MikroTik口径一样的数据?? 这样好横向对比,这就很好与 RB5009UG+S+IN 对比,毕竟这也是 ...
楼主已经说明是小包,也就是64byte
MK家的是要有专业设备按特定流程测试的
[备注1里面已经写了:1.All test are donewith Xena Networks specialized test equipment (XenaBay),and done according to RFC2544(Xena2544)] myway 发表于 2024-9-20 08:37
关于测试,可否以MikroTik口径一样的数据?? 这样好横向对比,这就很好与 RB5009UG+S+IN 对比,毕竟这也是 ...
扒了一下Mikrotik的官方测试方法,给出的配置如下:
/ip address
add address=192.168.86.1/24 interface=ether1 network=192.168.86.0
add address=192.168.87.1/24 interface=ether6 network=192.168.87.0
add address=192.168.88.1/24 interface=ether11 network=192.168.88.0
/tool traffic-generator packet-template
add name=r12 header-stack=mac,ip,udp ip-gateway=192.168.86.254 ip-dst=192.168.87.1
add name=r13 header-stack=mac,ip,udp ip-gateway=192.168.86.254 ip-dst=192.168.88.1
add name=r21 header-stack=mac,ip,udp ip-gateway=192.168.87.254 ip-dst=192.168.86.1
add name=r23 header-stack=mac,ip,udp ip-gateway=192.168.87.254 ip-dst=192.168.88.1
add name=r32 header-stack=mac,ip,udp ip-gateway=192.168.88.254 ip-dst=192.168.87.1
add name=r31 header-stack=mac,ip,udp ip-gateway=192.168.88.254 ip-dst=192.168.86.1
上面的意思是分别从eth1<——>ether6、eth1<——>ether11、eth6<——>ether11双向UDP打流,只做静态NAT,没有连接跟踪(FastPath不支持Connect Track),流的数量和端口数量一致,基本在十条内。
所以Routingnone(FastPath)的结果对标 “测试方式1”低于128条和“测试方式2”两条流的结果,也就是最好看的结果。
对于25 Simple Queues和25 IP Filter的测试方法和配置内容我没找到,据了解25 IP Filter512Byte的能力比较接近实际场景。
家用肯定要做Nat,所以最多只能用Fast Tracker而不是Fast Path,并且PPPoe和IPV6并不支持加速,这几个贴近实际应用的指标Mikrotik从来没给,我认为是它并不好看,所以官方的数据只做横向对比,没有实际参考价值。
同理,SOC硬件加速也只标称其最优值,对于多流降速的情况,官方也不会提,比如高通NSS标注的7.2Mpps转发在5W流同样跌成狗屎。造成这问题的原因,一是厂商肯定是要宣扬最好的一面,二是测试的规则越多,不同变量对结果的影响权重也各不相同,没有一个好的基准点。比如我们开个Cake Qos ?市面上的路由100%直接跪了。
本帖最后由 myway 于 2024-9-20 10:54 编辑
kevinho86 发表于 2024-9-20 09:10
楼主已经说明是小包,也就是64byte
MK家的是要有专业设备按特定流程测试的
[备注1里面已经写了:1.All te ...
不要单看备注信息,重点在于Bridging、Routing带不带规则
看起来是逐渐增加并发量,但并没有提到规则的问题。 因此,恐怕只能理解其100%CPU占用时候的数据等同为:
| |BPI-R4 |RB5009|
|Routing none (fast path) | 双向29.82Mpps,CPU占用0% | 4.969 Mpps
Edit: 根据楼主解释修订 myway 发表于 2024-9-20 09:29
不要单看备注信息,重点在于Bridging、Routing带不带规则
在楼主的
测试都是Routing,没有做Bridging。方法一测的单向,模板支持流数量修改,方法二测的双向,模板我还不知道怎么改流数量,方法二测试双向能力是否双PPE叠加。Routing都是不做nat的,属于最好的结果。 所以 5009 家用打游戏可以换这个吗? zhao137314 发表于 2024-9-20 09:53
所以 5009 家用打游戏可以换这个吗?
游戏只有非常少量的小包,RB5009的性能完全够用。我知道这个时候肯定有聪明的小伙伴跳出来说“硬路由转发延迟低”“软路由转发延迟拉跨”
来看下这台性能非常糟糕的999包邮三件套垃圾卵路由的拉跨表现。
每秒35.6K新增连接(这放到BPI-R4直接就跪了),19W活动连接(BPI-R4表示你好意思吗),440W 跟踪连接表(BPI-R4表示不知道在说什么),转发1.11Mpps,单向速率9.65Gbps。延迟情况平均81/25uS,最大408/223uS。我Ping了下百度,7.45mS。我平时不玩网游,但是老婆每次打输了都会赖我的网络不好,影响她的手感,也许有的人就是天赋异禀,这平均不到0.1mS的转发延迟会对她的游戏带来巨大影响。
myway 发表于 2024-9-20 09:29
不要单看备注信息,重点在于Bridging、Routing带不带规则
看起来是逐渐增加并发量,但并没有提到规则的 ...
答案是双向29.82Mpps,CPU占用0%。Mikrotik测的也是端口双向流总和。 rx_78gp02a 发表于 2024-9-20 10:24
游戏只有非常少量的小包,RB5009的性能完全够用。我知道这个时候肯定有聪明的小伙伴跳出来说“硬路由转发 ...
大佬这个是在哪个路由系统下测的 wswcx 发表于 2024-9-20 11:04
大佬这个是在哪个路由系统下测的
Ros 7.15.2 X86 先赞后看,就想看看软路由有那么辣跨么
rx_78gp02a 发表于 2024-9-20 11:08
Ros 7.15.2 X86
受教,ros比openwrt稍微难配一些(指多线路、分流这些),当主路由的话入门门槛高一点点 rx_78gp02a 发表于 2024-9-20 10:24
游戏只有非常少量的小包,RB5009的性能完全够用。我知道这个时候肯定有聪明的小伙伴跳出来说“硬路由转发 ...
非常感谢花时间做的测试!!!
我正好在替换ER4选新的阶段,,,RB5009是其中一个选择,,,
现在在琢磨,是不是将i5-8500T, Mellanox ConnectX4-Lx,用VyOS 1.4LTS搭起来,,,甚至于再导入 OVS-DPDK折腾一下。
我看你是你用Rolling 1.5的,,,不知道哪天开一篇说说,,期待 请问r4用的是什么固件呢 rx_78gp02a 发表于 2024-9-20 11:08
Ros 7.15.2 X86
CPU是 ?? cp8869 发表于 2024-9-20 11:20
请问r4用的是什么固件呢
一开始在网上找了一个用lean源码编译的,结果发现没有硬件加速,后来在本坛找的一个固件。ImmortalWrt 21.02-SNAPSHOT r0-e1b4487 / LuCI openwrt-21.02 branch git-23.098.38725-847bd6b
myway 发表于 2024-9-20 11:19
非常感谢花时间做的测试!!!
我正好在替换ER4选新的阶段,,,RB5009是其中一个选择,,,
有现成X86硬件闲置,Vyos可能真就是最佳方案。唯一不爽就是基本只能用nightly build,LTS一般人下不到。不过家用的话其实也无所谓。 weisir 发表于 2024-9-20 11:23
CPU是 ??
两百多的E5-2697A v4,我有发过一期软路由小包测试,就在本坛。 rx_78gp02a 发表于 2024-9-20 11:30
两百多的E5-2697A v4,我有发过一期软路由小包测试,就在本坛。
哦哦,还是老演员了,拜读过,感谢花时间做这些测试 我们这边大型网吧老板还是喜欢用ROS X86 软路由。随便搞个X99 双路低功耗服务器CPU 。256GB 内存做网路缓存。
能节约很多网络流量费。而且几百台电脑上网速度也不慢。关键是搭建费用比能达到同样效果的硬路由便宜。[睡觉] rx_78gp02a 发表于 2024-9-20 11:28
一开始在网上找了一个用lean源码编译的,结果发现没有硬件加速,后来在本坛找的一个固件。ImmortalWrt 21 ...
这个应该是mtk hnat版本,最新的openwrt主线6.6也可以硬件加速了,但用的是op自己的硬件加速架构,楼主能否测测有无惊喜,感谢! 小白表示很多地方看不懂,想问问中高度pt使用(日常下行跑在几百至千兆上下,峰值跑满2.5G下行,上行不超过两百兆)对小包转发要求高吗?