查看: 39389|回复: 140
【性能调优】高效利用多核CPU的优势——尤其是IPQ4019
火..
[复制链接]
presisco
presisco
当前离线
积分245
IP卡
狗仔卡
电梯直达
1#
发表于 2020-3-8 22:15
|
只看该作者
|倒序浏览
|阅读模式
本帖最后由 presisco 于 2020-3-11 11:12 编辑
首先是标题党对比,转发性能大幅提升50%:
优化前:
优化后
OpenWrt默认、Lean OpenWrt默认、使用irqbalance及转发优化版本的核心分配情况如下(IPQ40xx):中断 OpenWrt Lean irqbalance 转发优化
网络队列rx CPU123 CPU0123 CPU123 CPU12交替
网络队列tx 交替 交替 交替 CPU12交替
网络中断rx CPU0123 4个一组交替 交替 4个一组CPU12反向交替
网络中断tx CPU0123 交替 交替 CPU12反向交替
无线ahb CPU0123 CPU2 CPU2 CPU3
无线pcie CPU0123 CPU3(设置无效) CPU0 CPU3
其他(usb,dma,gpio...) CPU0123 CPU0123 CPU0/CPU2/CPU3 CPU0
CPU123表示使用CPU1、CPU2、CPU3均可。为了提升局部性以提升缓存效率,中断往往被固定在所有指定CPU中最小的那个,在缺少硬件NAT与千兆网的情况下很容易占满1个CPU核心而其他核心空闲,出现性能瓶颈。因此需要调整中断与CPU的对应关系。。
使用两台间隔7米的ACRH17组建WDS无线桥接网络,主路由中运行iperf3服务器,主从路由通过QCA9984 5G进行连接,测试电脑连接于从路由的LAN1接口。
两台ACRH17均使用OpenWrt官方19.07.2固件与ath10k无线驱动。
不同中断绑定配置下的转发性能如下表所示:
中断绑定配置 速度/Mbps OpenWrt默认 495 irqbalance 476 Lean固件默认策略 386 转发优化 581
我已经将中断的配置代码整合为脚本,只需要根据个人需求配置中断与CPU的对应关系,并上传到路由器中直接执行即可完成设定。每次重启路由器后脚本都需要重新执行。目前有基于OpenWrt/Lean与IPQ40xx系列SOC(4018/4019/4028/4029等)的脚本可直接使用。PandoraBox、AsusWrt、Merlin等及非IPQ40xx系列SOC的没有现成脚本。
如果需要在其它系统与SOC中应用,可以参考系统的中断信息表:
只需要关注最左边为纯数字的行,每行最后一项为中断的名称,带eth字样的通常为以太网中断,wlan/ath10k/ath9k/qcom-pcie-msi等字样的通常为wifi中断,带usb字样的通常为USB中断。脚本中set_mask_pattern函数的第一个参数为irq名称字段,如eth,wlan等;第二个参数是CPU核心遮罩值。调用set_mask_pattern后会将所有带有指定关键词的中断绑定到对应核心上。
中断均衡脚本:
中断均衡脚本链接
更新3-2020/3/11 10:00重写mt7621与bcm53xx的均衡脚本。
mt7621将CPU0/1处理eth0.1网络队列及USB/DMA,CPU2/3处理eth0.2网络队列及wifi。
bcm53xx使用CPU0/1处理网络队列,CPU0处理以太网,CPU1处理wifi、USB。
更新2-2020/3/10 22:30
重写ipq40xx的均衡脚本,将CPU1与CPU2用于处理网络端口队列,CPU8处理无线
更新1-2020/3/9 0:35
将ipq40xx.sh中网络相关irq全部指定至CPU2,与实验中相同。
多核cpu的优势
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
参与人数 3恩山币 +5
收起
理由
╩华夏の鹰╩
+ 2
不要怂、就是干!
nekomiya
+ 1
是dalao!
dfc643
+ 2
强大的恩山!(以下重复1万次)
查看全部评分
分享到:
QQ好友和群
QQ空间
收藏34
支持3
反对0
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复
使用道具
举报
置顶卡
沉默卡
喧嚣卡
顶贴卡
显身卡
lintel
lintel
当前离线
积分5841
IP卡
狗仔卡
顶 来自 81#
发表于 2020-3-15 05:59
|
只看该作者
presisco 发表于 2020-3-9 00:50
lean用ipq40xx.sh,潘多拉不确定,可以试试
1.早在3年前,上面说的平衡PandoraBox全都有了.
2.影响NAT最大的不是这个多核平衡,而是offload,就是我们常说的GSO/TSO,
垃圾BCM的4708/4709就是因为故意阉割了offload.所以NAT才会跟MT7621差不多.
3.当前IPQ4019上面的EDMA是支持大部分offload,除去CPU的平衡外,EDMA还支持16个硬件队列.这其实就已经是多核优化了,性能上不来还有很大原因是netfilter太多东西了.
4.假设OpenWrt能利用上IPQ806x的NSS协处理器,NAT性能会远超其他的设备.
点评
╩华夏の鹰╩
ipq40XX的hnat已经完美启用了,千兆内完全无压力。
详情
回复
发表于 2022-12-28 00:31
presisco
实际上如果要用OpenWrt,一个很大的问题是Wifi驱动中断要占用大量的CPU,内网转发也要占用大量的CPU,两个合起来容易打架。
如果单测Wifi的话,OpenWrt下IPQ40xx单核的极限也就600Mbps左右,就会CPU满载。
Pando
详情
回复
发表于 2020-3-15 17:58
presisco
1.脚本的编写思路就是来自于很早之前的PandoraBox中的某个文件,但OpenWrt里没有,Lean里不是最优。能有完全开源的PandoraBox允许自己编译的话也不会折腾这个。毕竟PandoraBox想找个IPV6支持不像OpenWrt那么透明简单
详情
回复
发表于 2020-3-15 17:40
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复
支持
反对
使用道具
举报
显身卡
co1q84
co1q84
当前离线
积分1282
IP卡
狗仔卡
2#
发表于 2020-3-8 22:32
|
只看该作者
进来看看,多谢~~
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复
支持
反对
使用道具
举报
显身卡
tonekey
tonekey
当前离线
积分1357
IP卡
狗仔卡
3#
发表于 2020-3-8 22:33
来自手机
|
只看该作者
厉害,k3可以用不
点评
presisco
理论上基于linux的系统都可以用,只是非ipq40xx的soc需要改脚本里的中断对应关系
详情
回复
发表于 2020-3-8 22:43
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复
支持
反对
使用道具
举报
显身卡
presisco
presisco
当前离线
积分245
IP卡
狗仔卡
4#
楼主|
发表于 2020-3-8 22:43
来自手机
|
只看该作者
tonekey 发表于 2020-3-8 22:33
厉害,k3可以用不
理论上基于linux的系统都可以用,只是非ipq40xx的soc需要改脚本里的中断对应关系
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复
支持
反对
使用道具
举报
显身卡
叉燒鬼.
叉燒鬼.
当前离线
积分304
IP卡
狗仔卡
5#
发表于 2020-3-8 22:54
|
只看该作者
谢谢分享~~~~~~~~~~~~
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复
支持
反对
使用道具
举报
显身卡
sslnew
sslnew
当前离线
积分1424
IP卡
狗仔卡
6#
发表于 2020-3-8 22:58
|
只看该作者
感谢分享!思考了。
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复
支持
反对
使用道具
举报
显身卡
hai_wifi
hai_wifi
当前离线
积分374
IP卡
狗仔卡
7#
发表于 2020-3-8 23:16
|
只看该作者
进来看看,感谢分享。
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复
支持
反对
使用道具
举报
显身卡
PLMH
PLMH
当前离线
积分714
IP卡
狗仔卡
8#
发表于 2020-3-8 23:33
来自手机
|
只看该作者
來看看利用多核CPU的优势——尤其是
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复
支持
反对
使用道具
举报
显身卡
wulishui
wulishui
当前离线
积分8511
IP卡
狗仔卡
9#
发表于 2020-3-8 23:34
|
只看该作者
不错。很不错!
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复
支持
反对
使用道具
举报
显身卡
ggoggo
ggoggo
当前离线
积分108
IP卡
狗仔卡
10#
发表于 2020-3-8 23:35
|
只看该作者
看看怎么个玩法
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复
支持
反对
使用道具
举报
显身卡
sqhdw
sqhdw
当前离线
积分329
IP卡
狗仔卡
11#
发表于 2020-3-9 00:03
|
只看该作者
思考一下
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复
支持
反对
使用道具
举报
显身卡
qpzr
qpzr
当前离线
积分3635
IP卡
狗仔卡
12#
发表于 2020-3-9 00:04
|
只看该作者
本帖最后由 qpzr 于 2020-3-9 00:08 编辑
lean 潘多拉 应该用哪个
点评
presisco
lean用ipq40xx.sh,潘多拉不确定,可以试试
详情
回复
发表于 2020-3-9 00:50
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复
支持
反对
使用道具
举报
显身卡
tpsxiong
tpsxiong
当前离线
积分828
IP卡
狗仔卡
13#
发表于 2020-3-9 00:16
来自手机
|
只看该作者
ipq4018可以不
点评
presisco
可以使用,最好是基于openwrt
详情
回复
发表于 2020-3-9 00:49
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复
支持
反对
使用道具
举报
显身卡
presisco
presisco
当前离线
积分245
IP卡
狗仔卡
14#
楼主|
发表于 2020-3-9 00:49
|
只看该作者
tpsxiong 发表于 2020-3-9 00:16
ipq4018可以不
可以使用,最好是基于openwrt
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复
支持
反对
使用道具
举报
显身卡
presisco
presisco
当前离线
积分245
IP卡
狗仔卡
15#
楼主|
发表于 2020-3-9 00:50
|
只看该作者
qpzr 发表于 2020-3-9 00:04
lean 潘多拉 应该用哪个
lean用ipq40xx.sh,潘多拉不确定,可以试试
点评
lintel
1.早在3年前,上面说的平衡PandoraBox全都有了.
2.影响NAT最大的不是这个多核平衡,而是offload,就是我们常说的GSO/TSO,
垃圾BCM的4708/4709就是因为故意阉割了offload.所以NAT才会跟MT7621差不多.
3.当前IPQ4019
详情
回复
发表于 2020-3-15 05:59
qpzr
不确定的 我还是不试了 前天刚踩了交换机的坑 一改 马上炸 怕了
详情
回复
发表于 2020-3-9 02:05
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复
支持
反对
使用道具
举报
显身卡