找回密码
 加入我们
搜索
      
查看: 6588|回复: 60

[网络] ROS软路由并发及PPPOE小包测试

[复制链接]
发表于 2024-10-22 20:17 | 显示全部楼层 |阅读模式
本帖最后由 rx_78gp02a 于 2024-10-22 20:14 编辑

摘要:
标题一定要突出“小包”
补充ROS软路由在高并发条件下的转发性能
对ROS PPPOE做小包性能测试,毕竟Mikrotik全系列不带PPPOE硬件加速

被测平台:J4125+CX542B
测试平台:E5-2697A v4+CX4121A
测试软件:PVE8.2.7+ROS V7.16
发包工具:Trex V3.6
测试结果:
J4125 255流转发单向1.78Mpps,510流双向1.56Mpps
J4125 400W流(你没看错)转发单向1.755Mpps
J4125+NAT 255流转发单向1.06Mpps
J4125+NAT 4K流转发单向1.06Mpps
J4125+NAT 8K流转发单向1.02Mpps
J4125+NAT 1W流转发单向1.008Mpps
J4125+NAT 4W流转发单向932Kpps
J4125+NAT 8W流转发单向881Kpps
J4125+NAT 40W流转发单向787Kpps
J4125+NAT 80W流转发单向627Kpps
备注:受连接跟踪数限制,高于80W流无法测试
J4125+PPPOE 255流发送1.428Mpps,接收862Kpps,510流双向1.07Mpps
J4125+PPPOE+NAT 255流发送1.045Mpps,接收734Kpps,510流双向946.65Kpps
J4125+PPPOE+NAT 1W流发送942Kpps,接收652Kpps,2W流双向828Kpps


J4125+NAT 2W流CAKE流控单向271Kpps(E5单向700Kpps双向1.4Mpps)

E5 PPPOE Server发包极限5.45Mpps,接收极限862Kpps
备注:PPPOE Server接收锁单核

结论:
ROS纯转发,无连接跟踪,400W流性能无降幅,无连接数限制。
ROS做地址转换,随着并发增加,性能跌幅较慢。作为对比IPQ8071在4k流转发1.54Mpps,1W 流只有0.449Mpps;MT7988A在4K流转发2.28Mpps,6W流只有0.27Mpps
PPPOE下行锁单核并且RPS无法均衡,上行可以负载均衡;很不幸家用宽带下行为主
PPPOE发送性能1.428Mpps/1.78Mpps=80.2%
PPPOE接收性能0.862Mpps/1.78Mpps=48%
PPPOE 协议本身开销不大,主要问题是锁单核
性能开销最大的是CAKE流控

652Kpps 的PPPOE性能跑满2.5G宽带不是问题。
ROS软路由比家用SOC硬件加速在带机量上有更大优势。
实际环境对并发的要求高于小包性能,毕竟,你要有足够的连接数量才能承载更多的包量。


测试环境说明:
E5跑ROS建立PPPOE Server
/interface pppoe-server server
add disabled=no interface=P1 max-mru=1492 max-mtu=1492 mrru=1500 \
    one-session-per-host=yes service-name=PPPOE
/ppp profile
add local-address=172.16.2.3 name=pppoe remote-address=172.16.2.4
/ppp secret
add name=user profile=pppoe service=pppoe
设置静态路由:
/ip route
add disabled=no distance=1 dst-address=16.0.0.0/8 gateway=172.16.2.4 \
    routing-table=main scope=30 suppress-hw-offload=no target-scope=10
add disabled=no dst-address=48.0.0.0/8 gateway=172.16.2.2 routing-table=main \
suppress-hw-offload=no
J4125跑ROS建立PPPOE Client
/interface pppoe-client
add add-default-route=yes disabled=no interface=WAN name=pppoe password=user \
user=user
设置静态路由:
/ip route
add disabled=no distance=1 dst-address=48.0.0.0/8 gateway=172.16.2.3 \
    routing-table=main scope=30 suppress-hw-offload=no target-scope=10
add disabled=no distance=1 dst-address=16.0.0.0/8 gateway=172.16.1.2 \
routing-table=main scope=30 suppress-hw-offload=no target-scope=10
做NAT地址转换:
/ip firewall nat
add action=masquerade chain=srcnat out-interface=pppoe

PPPOE测试框图及配置信息

01

01

255流转发单向1.78Mpps,作为对比N5105单向转发2.44Mpps

02

02

510流转发双向1.56Mpps,作为对比N5105单向转发2.07Mpps

03

03

400万流转发单向1.74Mpps,你没看错,是400万

04

04

8K流NAT地址转换,单向转发1.019Mpps

05

05

8W流NAT地址转换,单向转发947Kpps

06

06

80W流NAT地址转换,单向转发623Kpps

07

07

PPPOE 255流发送1.428Mpps,Trex显示转发只有834Kpps是Server端单核瓶颈,J4125 PPPOE发送能力以端口显示为准

08

08

E5作为PPPOE Server出现单核满载,且无法通过RPS负载均衡,限制接收速率834Kpps

09

09

PPPOE 255流接收860Kpps和Trex显示的862.29Kpps一致,J4125出现单核满载,单核心限制其接收性能,且无法通过RPS负载均衡

10

10

PPPOE+NAT 255流发送1.045Mpps,Trex显示转发只有861Kpps是Server端单核瓶颈,J4125 PPPOE发送能力以端口显示为准

11

11

PPPOE+NAT 255流接收732Kpps和Trex显示的734.5Kpps一致,J4125出现单核满载,单核心限制其接收性能

12

12

PPPOE+NAT 1W流发送942Kpps,作为对比255流发送为1.045Mpps

13

13

PPPOE+NAT 1W流接收659Kpps,作为对比255流发接收732Kpps

14

14

CAKE QOS+NAT 2W流转发单向283Kpps

15

15

E5作为PPPOE Server 发包极限为5.458Mpps,接收极限为862Kpps,发送无单核限制,接收锁单核

16

16

公司160台设备平时连接数最高5+2=7K,包量最大69.63K+27.68K=97.31Kpps

17

17

BT下载,最大连接数41.98K+10.32K=52.3K,最大包量149.94K+75.42K=225.36Kpps

18

18

评分

参与人数 4邪恶指数 +35 收起 理由
wesleyxy + 20 666
summerq + 5
hawie + 5
kevinho86 + 5 666

查看全部评分

发表于 2024-10-22 20:47 | 显示全部楼层
单路PPPOE还是只能单核
发表于 2024-10-22 21:48 | 显示全部楼层
CAKE流控是个好东西,用过之后是必配项。
开启流控后,运营商测速(满速跑)的同时ping外网IP,J4125+ROS会出现丢包;N100+ROS,没有丢包。
本来J4125和N100双机ROS VRRP热备,因为这个问题撤下来,改用单台RB5009替代了。
 楼主| 发表于 2024-10-22 22:34 来自手机 | 显示全部楼层
pdvc 发表于 2024-10-22 20:47
单路PPPOE还是只能单核

意料之中,对于ccr2116这种多核的机器会比较明显。
发表于 2024-10-23 01:21 来自手机 | 显示全部楼层
很久之前我在某个论坛里看到一个帖子,说这种情况因为只能用1核,需要高频高ipc的cpu。但是即便如此,对于增加的功耗发热来说,收益不成比例。后来我也试过j4125跟9900k超频5g,kernel网络协议栈转发作为对比,结论也是如此
发表于 2024-10-23 01:32 | 显示全部楼层
summerq 发表于 2024-10-23 01:21
很久之前我在某个论坛里看到一个帖子,说这种情况因为只能用1核,需要高频高ipc的cpu。但是即便如此,对于 ...

能比得上一些商业路由,足够了,几乎秒杀所有家用路由,J4125是个好东西,满载才十几瓦,待机七八瓦

有些人提到软路由就说小包比不上硬加速的家用路由,实际不是那么回事
发表于 2024-10-23 02:49 | 显示全部楼层
dcl2009 发表于 2024-10-23 01:32
能比得上一些商业路由,足够了,几乎秒杀所有家用路由,J4125是个好东西,满载才十几瓦,待机七八瓦

有 ...

硬件加速肯定有通道数量限制,高并发下比不过软计算很正常,但是家用常规使用基本不会占满

软硬路由家用场景下流量方面都够用,我倒是好奇延时方面会不会有明显差异
发表于 2024-10-23 08:37 | 显示全部楼层
Dzzz 发表于 2024-10-23 02:49
硬件加速肯定有通道数量限制,高并发下比不过软计算很正常,但是家用常规使用基本不会占满

软硬路由家用 ...

除了自己的测试,已经见到四个版本的测试了,软路由延迟更低,高并发大流量断崖式的领先
发表于 2024-10-23 08:47 来自手机 | 显示全部楼层
Dzzz 发表于 2024-10-23 02:49
硬件加速肯定有通道数量限制,高并发下比不过软计算很正常,但是家用常规使用基本不会占满

软硬路由家用 ...

硬路由的TCP重传率低一些
发表于 2024-10-23 08:56 | 显示全部楼层
pdvc 发表于 2024-10-23 08:47
硬路由的TCP重传率低一些

咦?这个帖子写的是三层及以下,TCP重传不是4层传输层的东西吗?

怎么测试的?很好奇,我用软路由明显比硬路由快且稳
发表于 2024-10-23 09:18 来自手机 | 显示全部楼层
dcl2009 发表于 2024-10-23 08:56
咦?这个帖子写的是三层及以下,TCP重传不是4层传输层的东西吗?

怎么测试的?很好奇,我用软路由明显比 ...

打表测的😂
发表于 2024-10-23 09:19 | 显示全部楼层
dcl2009 发表于 2024-10-23 01:32
能比得上一些商业路由,足够了,几乎秒杀所有家用路由,J4125是个好东西,满载才十几瓦,待机七八瓦

有 ...

请教是J4125直接安装ROS,还是装了ROS虚拟机?

估计两者的性能会有很大差异。。。
发表于 2024-10-23 09:33 | 显示全部楼层
arieslo 发表于 2024-10-23 09:19
请教是J4125直接安装ROS,还是装了ROS虚拟机?

估计两者的性能会有很大差异。。。 ...

直接装,网卡就是普通的千兆82576,J4125不适合装虚拟机
发表于 2024-10-23 09:40 | 显示全部楼层
本帖最后由 数不清 于 2024-10-23 09:41 编辑
arieslo 发表于 2024-10-23 09:19
请教是J4125直接安装ROS,还是装了ROS虚拟机?

估计两者的性能会有很大差异。。。 ...


一楼写了,估计是PVE8.2.7+ROS V7.16
 楼主| 发表于 2024-10-23 09:49 来自手机 | 显示全部楼层
arieslo 发表于 2024-10-23 09:19
请教是J4125直接安装ROS,还是装了ROS虚拟机?

估计两者的性能会有很大差异。。。 ...

J4125是PVE+ROS网卡走Sriov,x86要配好的网卡,Rtl8125b直通转发只有120kpps,这个性能刚好能跑满千兆。
 楼主| 发表于 2024-10-23 15:30 | 显示全部楼层
Dzzz 发表于 2024-10-23 02:49
硬件加速肯定有通道数量限制,高并发下比不过软计算很正常,但是家用常规使用基本不会占满

软硬路由家用 ...

并发测试图里面有延迟测试,图压缩后糊了。
引用之前IPQ8071A的延迟测试结果做对比。
IPQ8071A延迟测试结果:
2K流,单向2Mpps无丢包,平均延迟197/215us,最大延迟410/416us,抖动72/73us

4K流,单向1.46Mpps有丢包,平均延迟2622/2680us,最大延迟3191/3266us,抖动104/76us
6K流,单向0.777Mpps有丢包,平均延迟3566/3400us,最大延迟5780/5550us,抖动681/607us
12K流,单向0.37Mpps有丢包,平均延迟5275/5654us,最大延迟7257/6950us,抖动819/773us

J4125延迟测试结果:
J4125+NAT 6K流转发单向1Mpps无丢包,平均延迟151/213us,最大延迟14610/14978us,抖动60/112us

J4125+NAT 4K流转发单向1.06Mpps有丢包,平均延迟4390/5898us,最大延迟28354/22285us,抖动166/212us
J4125+NAT 8K流转发单向1.02Mpps有丢包,平均延迟5265/6283us,最大延迟33462/25183us,抖动416/182us
J4125+NAT 1W流转发单向1.008Mpps有丢包,平均延迟5196/6308us,最大延迟32797/28632us,抖动387/213us
J4125+NAT 4W流转发单向932Kpps有丢包,平均延迟5196/6308us,最大延迟32797/28632us,抖动387/213us
J4125+NAT 8W流转发单向881Kpps有丢包,平均延迟5124/5930us,最大延迟39417/37314us,抖动392/2404us
J4125+NAT 40W流转发单向787Kpps有丢包,平均延迟5928/6892us,最大延迟35832/45404us,抖动387/356us
J4125+NAT 80W流转发单向627Kpps有丢包,平均延迟4572/8771us,最大延迟69494/50176us,抖动704/3557us

硬件转发总体延迟很平均,平均延迟、最大延迟和抖动均随着流数量增加而升高,最大延迟很优秀,几乎和平均延迟一致。
软件转发平均延迟和抖动基本一致,不会随着流数量增加而显著升高;因为测试时CPU满载有丢包,最大延迟比平均延迟差很多。
注意看无丢包的情况,当硬件转发和软件转发均未到达极限时,平均延迟和抖动差异不大,最大延迟软转发比硬转发差很多。
所以:只要不满载,两者延迟差不多,软转发最大延迟比硬转发差。至于满载情况,都丢包了,还谈延迟没有意义。

评分

参与人数 1邪恶指数 +11 收起 理由
wesleyxy + 11 666

查看全部评分

发表于 2024-10-23 17:10 来自手机 | 显示全部楼层
rx_78gp02a 发表于 2024-10-23 15:30
并发测试图里面有延迟测试,图压缩后糊了。
引用之前IPQ8071A的延迟测试结果做对比。
IPQ8071A延迟测试结 ...

这延迟是tcp的?以前打表测过,软路由的tcp重传率至少有3%-5%,硬路由7621那种基本为0。
 楼主| 发表于 2024-10-23 17:28 | 显示全部楼层
pdvc 发表于 2024-10-23 17:10
这延迟是tcp的?以前打表测过,软路由的tcp重传率至少有3%-5%,硬路由7621那种基本为0。 ...

Trex使用SCTP协议进行延迟、抖动测量,我给的参数是-l 1000,也就是一秒钟分别从Server和Client端口互相发送1000个SCTP包,统计延迟。
发表于 2024-10-23 17:42 来自手机 | 显示全部楼层
rx_78gp02a 发表于 2024-10-23 17:28
Trex使用SCTP协议进行延迟、抖动测量,我给的参数是-l 1000,也就是一秒钟分别从Server和Client端口互相 ...

流控协议啊,那和TCP还不一样。
 楼主| 发表于 2024-10-23 18:06 | 显示全部楼层
pdvc 发表于 2024-10-23 17:42
流控协议啊,那和TCP还不一样。

SCTP算是TCP的一个改进协议,这里仅作为延迟测量使用。在传输流中插入标定包,并测量标定包到达的时间即可计算延迟,至于是使用SCTP还是ICMP没有区别。实际上Trex可以使用--l-pkt-mode把标定包修改成icmp,适用于单边丢包的场景,比如防火墙。
发表于 2024-10-23 18:39 | 显示全部楼层
之前用4590T安装ESXi部署ROS。。后来改用RB5009.。。

两个性能上区别不大。。就是X86的延迟比5009略高。。。

一般情况下,X86的延迟在7ms。。。5009的延迟在3ms

非专业测试。。只是普通用户的感受。。。

发表于 2024-10-23 18:54 来自手机 | 显示全部楼层
本帖最后由 iamyangyi 于 2024-10-23 18:58 编辑
dcl2009 发表于 2024-10-23 01:32
能比得上一些商业路由,足够了,几乎秒杀所有家用路由,J4125是个好东西,满载才十几瓦,待机七八瓦

有 ...


软路吃配置。我并不看好J4125这种入门U的转发性能。多数J4125还是套娃在用,性能更降一步。另硬转发会简化一些网络栈处理流程。
 楼主| 发表于 2024-10-23 19:06 | 显示全部楼层
arieslo 发表于 2024-10-23 18:39
之前用4590T安装ESXi部署ROS。。后来改用RB5009.。。

两个性能上区别不大。。就是X86的延迟比5009略高。。 ...

1、CPU工作在性能模式能降低延迟。
2、网卡有不同的卸载属性,性能差异会比较大
有的网卡缓冲区较大,接收多个数据包后合并再一次送入CPU处理,吞吐量高但是延迟增加。有的网卡缓冲区小,每来一个包即推入CPU处理,延迟低但是效率也低。Vyos这类系统有吞吐模式和延迟模式可以切换,当然ROS没得选,比如下面这个测试,用的RTL8125B网卡直通,虽然转发只有区区120Kpps,但是即使存在丢包的情况,延迟性能也比mellanox的好很多,最高延迟6.4/4.4ms,平均延迟0.45/2.25ms。
Snipaste_2024-10-17_13-36-14 J4125 RTL8125B 3K.png
发表于 2024-10-23 19:25 | 显示全部楼层
iamyangyi 发表于 2024-10-23 18:54
软路吃配置。我并不看好J4125这种入门U的转发性能。多数J4125还是套娃在用,性能更降一步。另硬转发会简 ...

别为难J4125了,5年前的老U了,套娃没法玩了,现在套娃的一般是AIO平台,最差也是N100,一般12100t/5500u起步

硬转发确实少了一些步骤,但是X86力大砖飞,内核以及协议栈之间耗时极短,低连接数追平或者打败硬转发问题不大。高流量就不说了,为难硬转发那可怜的矩阵规模了。
发表于 2024-10-23 21:20 | 显示全部楼层
喜闻乐见这种实测打脸贴
发表于 2024-10-23 22:04 | 显示全部楼层
dcl2009 发表于 2024-10-23 19:25
别为难J4125了,5年前的老U了,套娃没法玩了,现在套娃的一般是AIO平台,最差也是N100,一般12100t/5500u ...


我早就抛弃X86了 ,用J4120时就抛弃了,我从不玩套娃。后来ARM 3399 A311D 3588 跑,现在又回归 MTK 7986 和IPQ6010 跑前端挺好。
发表于 2024-10-23 22:32 来自手机 | 显示全部楼层
ROS的话试试加个25条规则后的小包转发率呢,都用这个系统了不可能纯转发
发表于 2024-10-23 22:45 | 显示全部楼层
iamyangyi 发表于 2024-10-23 22:04
我早就抛弃X86了 ,用J4120时就抛弃了,我从不玩套娃。后来ARM 3399 A311D 3588 跑,现在又回归 MTK 7986 ...

看来你不是重度用户,我20年-22年玩PCDN开网心云,用所有硬路由都顶不过两天,包括硬路由刷op,必卡爆,用N3160+ROS稳如老狗
发表于 2024-10-23 22:49 | 显示全部楼层
kerafyrm 发表于 2024-10-23 22:32
ROS的话试试加个25条规则后的小包转发率呢,都用这个系统了不可能纯转发

5800h开了4个核,网卡SP310直通+i226v直通,加了五十多条规则,小包基本对半砍到四分之一吧,2.5G分发无压力,万兆打不满
发表于 2024-10-24 10:39 | 显示全部楼层
所以ROS建议开cake流控?
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-1-28 10:11 , Processed in 0.016831 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表