恩山无线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 930|回复: 11

优化 K2P Padavan CPU 多核心使用

  [复制链接]
发表于 2020-5-15 12:39 | 显示全部楼层 |阅读模式
本帖最后由 xykz 于 2020-5-25 10:22 编辑

已废弃,最终版见:https://www.right.com.cn/forum/thread-4031767-1-1.html



起因:https://www.right.com.cn/forum/thread-4025644-1-1.html
我家里外网带宽100M,路由带30个终端,除了SQM以外没有打开任何附加功能,固件是荒野无灯3.4.3.9-099_20180402-0237,开了SFE

这里重新描述一下我的场景,应该和大多数家里跑PT,又要播放内网NAS视频的人差不多的。

比如我NAS(有线)在跑PT,客厅的电视(有线)在放直播(非IPTV,电视家类P2P的),房间里投影(5G无线)在放NAS上的蓝光电影,外网带宽满载。

默认情况下,此时路由负载40~50%,蓝光电影时不时卡顿;起因帖子里也有大佬说了,是MTK的U设计问题,不能充分利用CPU;最近查了一下,发现v2ex和恩山都有大佬提供了以下配置用于改善这个问题:

  1. echo 8 > /proc/irq/11/smp_affinity
  2. echo 8 > /proc/irq/12/smp_affinity
  3. echo 8 > /sys/class/net/eth2/queues/rx-0/rps_cpus
  4. echo 8 > /sys/class/net/ra0/queues/rx-0/rps_cpus
  5. echo 3 > /sys/class/net/eth3/queues/rx-0/rps_cpus
复制代码

昨晚试了一下,发现这个配置主要是针对大流量的公网传输,CPU0123分配了0和1处理外网,3处理无线和内网;但是在我的场景下还有内网大流量要处理,而且CPU2处于围观状态。

于是我自己调整了一下,终于让CPU0123在高负载下都处于一个均衡的状态了,配置如下(20200517更新,更新内容见12F):

  1. echo 3 > /proc/irq/11/smp_affinity
  2. echo 3 > /sys/class/net/eth2/queues/rx-0/rps_cpus
  3. echo 3 > /proc/irq/12/smp_affinity
  4. echo 3 > /sys/class/net/ra0/queues/rx-0/rps_cpus
  5. echo f > /sys/class/net/br0/queues/rx-0/rps_cpus
  6. echo 3 > /sys/class/net/eth3/queues/rx-0/rps_cpus
  7. echo c > /sys/class/net/ppp0/queues/rx-0/rps_cpus
复制代码

ppp0和eth3会占用大量的CPU,尤其是前者,所以把他们俩分开,eth3使用CPU0/1,ppp0使用CPU2/3
eth2和ra0用不了多少资源,让它们随eth3使用CPU0/1
br0也是个资源大户,但是CPU就那么多个,让它自己找个空闲的位置就好

测试场景如上文红字,不过把投影放电影改成了手机WIFI拉文件,速率稳定在100Mbps+,CPU使用情况见下图:

无标题1.png

不过很奇怪的是,其实这个固件默认配置的情况下,也能这么跑,只是CPU0闲置,有一个会跑到70~80%,剩下两个40%左右;不过能跑是能跑,还是一开始说的那个问题,内网用无线看片会卡顿。

题外话:

最后,对于下PT/BT的朋友,和我同款固件的话,可以尝试一下下面的参数,可以改善大量UDP连接带来路由CPU使用率过高影响整体网络质量的问题,主要思路是快速释放掉没用的连接,避免系统浪费资源去跟踪:

  1. echo 32768     > /proc/sys/net/core/somaxconn
  2. echo 16384     > /proc/sys/net/core/netdev_max_backlog
  3. echo 16384     > /proc/sys/net/ipv4/tcp_max_syn_backlog
  4. echo 15       > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_close_wait
  5. echo 30       > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_fin_wait
  6. echo 30       > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_time_wait
  7. echo 300      > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established
  8. echo 30       > /proc/sys/net/netfilter/nf_conntrack_udp_timeout
  9. echo 120      > /proc/sys/net/netfilter/nf_conntrack_udp_timeout_stream
复制代码






评分

参与人数 2恩山币 +3 收起 理由
拉格朗日 + 1 别光喝酒啊,吃菜吃菜~~~
XwbCHN + 2 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-5-15 14:36 | 显示全部楼层
以前也有你这种类似问题,副路由k2p无线中继主路由r7900p,k2p刷荒野无灯20181012和1107的固件,斐讯t1有线连接k2p看电视,手机连Wi-Fi根本上不了网,查看k2p流量情况,上传几乎占满带宽,设置smq和更改连接数量均没什么效果,t1一点不卡。后来用了个闲置的tplink百兆电力猫有线连接t1,另一端连接主路由r7900p,主路由开启网件官方固件的自动qos,解决了这个问题。现在主路由换成ax3600,主路由后台直接t1限制上传速度,很好用。

点评

咱们情况不一样哈,你这个是上传满载导致的(也有可能你上传带宽比较大?满载之后K2P的CPU也打满了?) 我这个是公网内网都有传输需求,CPU本身策略不好,没有把负载分摊到各个核心上导致堵塞。 不过我这里20M  详情 回复 发表于 2020-5-15 14:40
来自苹果客户端来自苹果客户端
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2020-5-15 14:40 | 显示全部楼层
huhu0623032 发表于 2020-5-15 14:36
以前也有你这种类似问题,副路由k2p无线中继主路由r7900p,k2p刷荒野无灯20181012和1107的固件,斐讯t1有线 ...

咱们情况不一样哈,你这个是上传满载导致的(也有可能你上传带宽比较大?满载之后K2P的CPU也打满了?)

我这个是公网内网都有传输需求,CPU本身策略不好,没有把负载分摊到各个核心上导致堵塞。

不过我这里20Mbps上传,只要看P2P网络电视肯定会满载,打开SQM之后很流畅
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-5-15 14:43 | 显示全部楼层
官方固件虽然简单,功能还是稳定的
来自苹果客户端来自苹果客户端
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-5-15 14:45 | 显示全部楼层
200m电信,上传40m吧,有可能我中继选的lan口,路由模式,smq失效了。

点评

LAN口要把eth3改成eth2  详情 回复 发表于 2020-5-15 17:58
来自苹果客户端来自苹果客户端
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2020-5-15 17:58 | 显示全部楼层
huhu0623032 发表于 2020-5-15 14:45
200m电信,上传40m吧,有可能我中继选的lan口,路由模式,smq失效了。

LAN口要把eth3改成eth2
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-5-15 18:29 | 显示全部楼层
        感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-5-15 18:40 来自手机 | 显示全部楼层
感谢分享 看起来很牛逼 我用的是高恪固件 适用吗?

点评

适用,这个是修改linux的中断处理,与系统无关;建议是遇到了性能瓶颈,去终端看看htop的数据后再改,我这个固件比较老,高格很有可能已经处理过了  详情 回复 发表于 2020-5-15 19:06
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2020-5-15 19:06 | 显示全部楼层
luhua 发表于 2020-5-15 18:40
感谢分享 看起来很牛逼 我用的是高恪固件 适用吗?

适用,这个是修改linux的中断处理,与系统无关;建议是遇到了性能瓶颈,去终端看看htop的数据后再改,我这个固件比较老,高格很有可能已经处理过了

点评

谢谢,下次遇到问题了再来。  详情 回复 发表于 2020-5-16 09:48
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-5-16 09:48 | 显示全部楼层
xykz 发表于 2020-5-15 19:06
适用,这个是修改linux的中断处理,与系统无关;建议是遇到了性能瓶颈,去终端看看htop的数据后再改,我 ...

谢谢,下次遇到问题了再来。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-5-16 11:03 | 显示全部楼层
这才是有技术含量的帖子
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2020-5-17 04:04 | 显示全部楼层
更新一版参数,之前那个还是有问题,大量连接数的情况下CPU1/2会满载,影响性能。

发现大量连接数+带宽满载的情况下,ppp0和eth3都是会占用大量的CPU,尤其是前者,所以把他们俩分开,eth3使用CPU0/1,ppp0使用CPU2/3

eth2和ra0用不了多少资源,让它们随eth3使用CPU0/1

br0也是个资源大户,但是CPU就那么多个,让它自己找个空闲的位置就好。
ifb4eth3不吃资源,去掉了
我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )|网站地图

GMT+8, 2020-6-2 05:37

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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