ROS软路由并发及PPPOE小包测试
本帖最后由 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测试框图及配置信息
255流转发单向1.78Mpps,作为对比N5105单向转发2.44Mpps
510流转发双向1.56Mpps,作为对比N5105单向转发2.07Mpps
400万流转发单向1.74Mpps,你没看错,是400万
8K流NAT地址转换,单向转发1.019Mpps
8W流NAT地址转换,单向转发947Kpps
80W流NAT地址转换,单向转发623Kpps
PPPOE 255流发送1.428Mpps,Trex显示转发只有834Kpps是Server端单核瓶颈,J4125 PPPOE发送能力以端口显示为准
E5作为PPPOE Server出现单核满载,且无法通过RPS负载均衡,限制接收速率834Kpps
PPPOE 255流接收860Kpps和Trex显示的862.29Kpps一致,J4125出现单核满载,单核心限制其接收性能,且无法通过RPS负载均衡
PPPOE+NAT 255流发送1.045Mpps,Trex显示转发只有861Kpps是Server端单核瓶颈,J4125 PPPOE发送能力以端口显示为准
PPPOE+NAT 255流接收732Kpps和Trex显示的734.5Kpps一致,J4125出现单核满载,单核心限制其接收性能
PPPOE+NAT 1W流发送942Kpps,作为对比255流发送为1.045Mpps
PPPOE+NAT 1W流接收659Kpps,作为对比255流发接收732Kpps
CAKE QOS+NAT 2W流转发单向283Kpps
E5作为PPPOE Server 发包极限为5.458Mpps,接收极限为862Kpps,发送无单核限制,接收锁单核
公司160台设备平时连接数最高5+2=7K,包量最大69.63K+27.68K=97.31Kpps
BT下载,最大连接数41.98K+10.32K=52.3K,最大包量149.94K+75.42K=225.36Kpps
单路PPPOE还是只能单核[流汗] CAKE流控是个好东西,用过之后是必配项。
开启流控后,运营商测速(满速跑)的同时ping外网IP,J4125+ROS会出现丢包;N100+ROS,没有丢包。
本来J4125和N100双机ROS VRRP热备,因为这个问题撤下来,改用单台RB5009替代了。 pdvc 发表于 2024-10-22 20:47
单路PPPOE还是只能单核
意料之中,对于ccr2116这种多核的机器会比较明显。 很久之前我在某个论坛里看到一个帖子,说这种情况因为只能用1核,需要高频高ipc的cpu。但是即便如此,对于增加的功耗发热来说,收益不成比例。后来我也试过j4125跟9900k超频5g,kernel网络协议栈转发作为对比,结论也是如此 summerq 发表于 2024-10-23 01:21
很久之前我在某个论坛里看到一个帖子,说这种情况因为只能用1核,需要高频高ipc的cpu。但是即便如此,对于 ...
能比得上一些商业路由,足够了,几乎秒杀所有家用路由,J4125是个好东西,满载才十几瓦,待机七八瓦
有些人提到软路由就说小包比不上硬加速的家用路由,实际不是那么回事 dcl2009 发表于 2024-10-23 01:32
能比得上一些商业路由,足够了,几乎秒杀所有家用路由,J4125是个好东西,满载才十几瓦,待机七八瓦
有 ...
硬件加速肯定有通道数量限制,高并发下比不过软计算很正常,但是家用常规使用基本不会占满
软硬路由家用场景下流量方面都够用,我倒是好奇延时方面会不会有明显差异 Dzzz 发表于 2024-10-23 02:49
硬件加速肯定有通道数量限制,高并发下比不过软计算很正常,但是家用常规使用基本不会占满
软硬路由家用 ...
除了自己的测试,已经见到四个版本的测试了,软路由延迟更低,高并发大流量断崖式的领先 Dzzz 发表于 2024-10-23 02:49
硬件加速肯定有通道数量限制,高并发下比不过软计算很正常,但是家用常规使用基本不会占满
软硬路由家用 ...
硬路由的TCP重传率低一些 pdvc 发表于 2024-10-23 08:47
硬路由的TCP重传率低一些
咦?这个帖子写的是三层及以下,TCP重传不是4层传输层的东西吗?
怎么测试的?很好奇,我用软路由明显比硬路由快且稳 dcl2009 发表于 2024-10-23 08:56
咦?这个帖子写的是三层及以下,TCP重传不是4层传输层的东西吗?
怎么测试的?很好奇,我用软路由明显比 ...
打表测的😂 dcl2009 发表于 2024-10-23 01:32
能比得上一些商业路由,足够了,几乎秒杀所有家用路由,J4125是个好东西,满载才十几瓦,待机七八瓦
有 ...
请教是J4125直接安装ROS,还是装了ROS虚拟机?
估计两者的性能会有很大差异。。。 arieslo 发表于 2024-10-23 09:19
请教是J4125直接安装ROS,还是装了ROS虚拟机?
估计两者的性能会有很大差异。。。 ...
直接装,网卡就是普通的千兆82576,J4125不适合装虚拟机 本帖最后由 数不清 于 2024-10-23 09:41 编辑
arieslo 发表于 2024-10-23 09:19
请教是J4125直接安装ROS,还是装了ROS虚拟机?
估计两者的性能会有很大差异。。。 ...
一楼写了,估计是PVE8.2.7+ROS V7.16 arieslo 发表于 2024-10-23 09:19
请教是J4125直接安装ROS,还是装了ROS虚拟机?
估计两者的性能会有很大差异。。。 ...
J4125是PVE+ROS网卡走Sriov,x86要配好的网卡,Rtl8125b直通转发只有120kpps,这个性能刚好能跑满千兆。 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满载有丢包,最大延迟比平均延迟差很多。
注意看无丢包的情况,当硬件转发和软件转发均未到达极限时,平均延迟和抖动差异不大,最大延迟软转发比硬转发差很多。
所以:只要不满载,两者延迟差不多,软转发最大延迟比硬转发差。至于满载情况,都丢包了,还谈延迟没有意义。 rx_78gp02a 发表于 2024-10-23 15:30
并发测试图里面有延迟测试,图压缩后糊了。
引用之前IPQ8071A的延迟测试结果做对比。
IPQ8071A延迟测试结 ...
这延迟是tcp的?以前打表测过,软路由的tcp重传率至少有3%-5%,硬路由7621那种基本为0。 pdvc 发表于 2024-10-23 17:10
这延迟是tcp的?以前打表测过,软路由的tcp重传率至少有3%-5%,硬路由7621那种基本为0。 ...
Trex使用SCTP协议进行延迟、抖动测量,我给的参数是-l 1000,也就是一秒钟分别从Server和Client端口互相发送1000个SCTP包,统计延迟。 rx_78gp02a 发表于 2024-10-23 17:28
Trex使用SCTP协议进行延迟、抖动测量,我给的参数是-l 1000,也就是一秒钟分别从Server和Client端口互相 ...
流控协议啊,那和TCP还不一样。 pdvc 发表于 2024-10-23 17:42
流控协议啊,那和TCP还不一样。
SCTP算是TCP的一个改进协议,这里仅作为延迟测量使用。在传输流中插入标定包,并测量标定包到达的时间即可计算延迟,至于是使用SCTP还是ICMP没有区别。实际上Trex可以使用--l-pkt-mode把标定包修改成icmp,适用于单边丢包的场景,比如防火墙。 之前用4590T安装ESXi部署ROS。。后来改用RB5009.。。
两个性能上区别不大。。就是X86的延迟比5009略高。。。
一般情况下,X86的延迟在7ms。。。5009的延迟在3ms
非专业测试。。只是普通用户的感受。。。
本帖最后由 iamyangyi 于 2024-10-23 18:58 编辑
dcl2009 发表于 2024-10-23 01:32
能比得上一些商业路由,足够了,几乎秒杀所有家用路由,J4125是个好东西,满载才十几瓦,待机七八瓦
有 ...
软路吃配置。我并不看好J4125这种入门U的转发性能。多数J4125还是套娃在用,性能更降一步。另硬转发会简化一些网络栈处理流程。 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。
iamyangyi 发表于 2024-10-23 18:54
软路吃配置。我并不看好J4125这种入门U的转发性能。多数J4125还是套娃在用,性能更降一步。另硬转发会简 ...
别为难J4125了,5年前的老U了,套娃没法玩了,现在套娃的一般是AIO平台,最差也是N100,一般12100t/5500u起步
硬转发确实少了一些步骤,但是X86力大砖飞,内核以及协议栈之间耗时极短,低连接数追平或者打败硬转发问题不大。高流量就不说了,为难硬转发那可怜的矩阵规模了。
喜闻乐见这种实测打脸贴 dcl2009 发表于 2024-10-23 19:25
别为难J4125了,5年前的老U了,套娃没法玩了,现在套娃的一般是AIO平台,最差也是N100,一般12100t/5500u ...
我早就抛弃X86了 ,用J4120时就抛弃了,我从不玩套娃。后来ARM 3399 A311D 3588 跑,现在又回归 MTK 7986 和IPQ6010 跑前端挺好。 ROS的话试试加个25条规则后的小包转发率呢,都用这个系统了不可能纯转发 iamyangyi 发表于 2024-10-23 22:04
我早就抛弃X86了 ,用J4120时就抛弃了,我从不玩套娃。后来ARM 3399 A311D 3588 跑,现在又回归 MTK 7986 ...
看来你不是重度用户,我20年-22年玩PCDN开网心云,用所有硬路由都顶不过两天,包括硬路由刷op,必卡爆,用N3160+ROS稳如老狗 kerafyrm 发表于 2024-10-23 22:32
ROS的话试试加个25条规则后的小包转发率呢,都用这个系统了不可能纯转发
5800h开了4个核,网卡SP310直通+i226v直通,加了五十多条规则,小包基本对半砍到四分之一吧,2.5G分发无压力,万兆打不满 所以ROS建议开cake流控?
页:
[1]
2