immortalwrt / immortalwrt

An opensource OpenWrt variant for mainland China users.
https://downloads.immortalwrt.org
Other
5.86k stars 1.68k forks source link

最高只能【200mbps】 R619AC 【竞斗云】 IPQ40XX 【网速异常】 #933

Closed 57382 closed 3 weeks ago

57382 commented 1 year ago

Describe the bug

200 www.speedtest.net 测速最高只能200M左右,无论开关软硬NAT转发都是200M左右。

用X-WRT快照版测速300~400M,因此排除硬件问题。

https://github.com/x-wrt/x-wrt/issues/242 可能和这个有关系?

ImmortalWrt version

r25902-cfba336507

ImmortalWrt target/subtarget

ipq40xx/generic

Device

P&W R619AC 128M

Image kind

Official downloaded image

Steps to reproduce

1,安装immortalwrt快照版 2,PPPoE拨号 3,用 www.speedtest.net 测速

Actual behaviour

最高速度被锁定在200M左右。

Expected behaviour

最高速度达到300~400M

Additional info

https://github.com/x-wrt/x-wrt/issues/242 222

Diffconfig

No response

Terms

1715173329 commented 1 year ago

这个问题应该报告给上游 openwrt,或者你也可以使用 21.02 分支。

57382 commented 1 year ago

这个问题应该报告给上游 openwrt,或者你也可以使用 21.02 分支。

400 ImmortalWrt 21.02.5 基本上认定是上游firewall4/nftables的锅,性能有严重bug

57382 commented 1 year ago

集成 https://github.com/x-wrt/com.x-wrt/raw/master/natflow/Makefile 这个应该可以解决问题。 @1715173329
https://github.com/openwrt/openwrt/issues/12429 上游的人说安装irqbalance多核优化可以解决问题,真的假的

xlighting2017 commented 1 year ago
  1. ipq4000 的 ipqbalance 是默认开启的 image

可以通过命令 cat /proc/interrupts 来查

如果不开启的时候,会出现 集中在单个 CPU上,默认应该类似下图,相对均匀的分布

image
  1. 根据 https://github.com/x-wrt/x-wrt/issues/242 里面的说法, 可以通过关闭 GRO 来优化,对应的命令是 ethtool -K ethX gro off 把 X 换成 具体的数字,例如 0~4

  2. 以上都是 推测,你要自行尝试

57382 commented 1 year ago
  1. ipq4000 的 ipqbalance 是默认开启的
image

可以通过命令 cat /proc/interrupts 来查

如果不开启的时候,会出现 集中在单个 CPU上,默认应该类似下图,相对均匀的分布 image

  1. 根据 ipq40xx: 补丁缺失(?)导致性能骤降 x-wrt/x-wrt#242 里面的说法, 可以通过关闭 GRO 来优化,对应的命令是 ethtool -K ethX gro off 把 X 换成 具体的数字,例如 0~4
  2. 以上都是 推测,你要自行尝试

谢谢!等我试一试,问题应该就出在这上了,应该有效 https://access.redhat.com/solutions/20278 https://github.com/openwrt/openwrt/issues/9848

Mike-qian commented 1 year ago

QQ截图20230428042920 在5.4 5.10中最多一个半核心满载就能跑满400M,现在5.15要这么高负载才能跑满

NothingNA commented 1 year ago

感觉firewall4这东西多少有点小问题 我是x86机器用firewall4的固件 ipv6的测速奇慢 我的网络用firewall的固件正常是ipv4 1200m ipv6 2000m,用firewall4的固件 ipv4测速正常 ipv6的测速就会很不稳定 大部分时间900m 偶尔还会掉到400m

machine-doll commented 1 year ago

感觉mt7621用fw4的时候,ipv6有时候也会有问题,变得特别慢。我遇到过ipv6 无线和LAN之间纯转发只能跑300M多一点的问题,如果NAT的话更差,有一次编译出来的固件见到了ipv6只有100多M的奇观。恢复到fw3可以解决,并不是每次编译出来的固件都有这毛病,随机出现,印象中官方的rc5也有这毛病,但是也是随机出现,并不是每个机型都有,也不是必定出现
拨号没条件测,估计更差吧。不是能稳定复现的bug,但是基本上可以确定是上游的问题

laaArmy commented 1 year ago

更换设备以解决这个BUG

machine-doll commented 1 year ago

感觉和设备没那么大关系,是fw4概率出现offload失效。当然,如果你决定直接不用offload,确实可以避免这些问题。不过代价有点大,因为哪怕年迈的mt7621,靠硬件offload都能跑940M,软件offload差不多300M多一点。j4125的机器我感觉有些时候体验还没配置正确、各种offload正常的mt7621快,更别说mt7981b了。不过mt7981b上fw4似乎没那么容易遇到问题,虽然也遇到过硬件offload失效
现在的硬路由官方的SDK和文档都是用的fw3吧,高通那边甚至用的18.06 DSA都没有。当然高通的东西,刷op后DSA也遇到过问题,不走交换机的硬件加速。比如我接一个VLAN交换机,它的一些端口和机器的交换机上的端口属于一个VLAN,正常情况下应该直接由交换机自己处理的,它概率性地会跑到系统里来,有时候甚至没法正确处理VLAN。不过这是另一个问题了。ipq4019也有过这个问题,没有官方支持的那些ipq5018之类的毛病就更多了

1715173329 commented 9 months ago

最近加了个补丁,可以再试试。