路由器性能迷思

207 天前
 szsgz
同一个系统比如 ikuai ,官方的机子比如 Q6000 ,只需要 512MB 内存,128MB 闪存,但是如果用 x86 软路由,就需要 4-8G 内存,十几 G 硬盘?
6243 次点击
所在节点    宽带症候群
48 条回复
ll26571
207 天前
“但是如果用 x86 软路由,就需要 4-8G 内存,十几 G 硬盘”

这个说法过于夸张了,自己下一个 x86 的镜像放虚拟机里一跑便知,实际给 512MB 照样还能很多剩的,配 4-8g 内存很大程度上也是因为你很难在市面上买到 512MB 或者 1GB 的内存条(除非你直接买颗粒焊主板上,但 x86 没人这样干的),实际 openwrt 编译好之后的镜像体积也不过 200~500MB ,虽然比不上 arm 和 mips ,但也远没到 GB 级
cxtrinityy
207 天前
@szsgz 单纯一个软路由系统肯定不需要那么大内存和硬盘的
szsgz
207 天前
@ll26571 ikuai 的官方镜像底下写的系统要求,64 位的需要 4GB 内存,是不是吓唬人的...还是说流控之类需要检测网络流量的功能真的需要这么多的硬件资源?

Love4Taylor
207 天前
@szsgz 给个参考,RouteOS CHR 推荐的内存配置是 256 + [ 8 × (CPU_COUNT) × (INTERFACE_COUNT - 1) ]
465456
207 天前
按需要选择,我要用到 sqm 功能,所以要选 x64
szsgz
207 天前
@465456 类似这样的功能,会占用很多资源对吗?
那么问题就是这种功能在官方硬件上是怎么工作的?难道每一样功能都有硬件加速?

也就是说,每一家路由器厂商的硬件都是安装自家系统功能定制的而不是毫无技术含量的封装而已?
szsgz
207 天前
@Love4Taylor #2 这种硬件加速如果跟 n100 这样的 x86 平台 cpu 来 PK 的话谁会胜出?
465456
207 天前
@szsgz 软路由器,没有硬件加速。我用的 sqm 设置成按 ip 动态分配宽带,用迅雷下载,不影响其它人使用。再加上我在软路由装了其它功能,类似 DNS 劫持去广告,DNS 预读取
Love4Taylor
207 天前
@szsgz 小包的话硬件加速胜,大包的话除非你 x86 大力出奇迹,否则还是硬件加速。
xqzr
207 天前
@Livid #0-1 AI
murchef
207 天前
Q6000 的 Arm 版官方爱快系统没有 视频缓存 docker 等插件,没有存储功能,不能开 pcdn 相关的功能。
X86 平台可以直接用 32 位系统,与 64 位系统基本没区别,实践中 32 位爱快在虚拟机平台,只跑网络相关功能,仅需要 512G-1G 内存,1G 硬盘,Cpu 仅分配两核心( J4205 ),可正常使用 Qos ,分流,流量监控等功能。
加速方面:Q6000 仅软件加速,没有硬件加速(部分官方爱快硬件才有)。X86 仅 BBR 加速。
murchef
207 天前
@murchef 其中内存和 Cpu 核心分配( cpu 性能)会影响带机量,cpu 性能也影响 Qos 流控性能。就家庭应用场景下我是不开 Qos 的。只是如果跑千兆的上传下载的话,2 核心 J4205 性能是不够的会跑满,x86 平台需要 cpu 做 nat ,Q6000 的 nat 默认情况不经过 cpu 。
datocp
207 天前
用的 erx 256mb 内存 100mbps 带宽带了 280+终端。其实 mtk7620 的 y1s 也能胜任,还是觉得不如 mtk7621 呈现网页快。
路由常见的 cpu ,mtk7620 似乎关闭 wifi ,同一固件就能提高 50mbps 。所以小路由只干路由的事别把下载有的没的浪费 cpu 的功能也集成。
至于内存 linux 在带机数量有条换算公式。当然小内存机器也可应用内存释放方法。

在 100mps 带 280+的网络宁可要 qos 不要硬件加速
1.qos 给人的错觉很费 cpu
有些固件,估计写固件的人都只是套个模板进去。以前测试 ddwrt 的 imq 直接死机,asus 的也好不到哪去,都是应用于高耗 cpu 的接口,而不是应用于 pppor-wan br-lan br-wan
2.qos 不是限速
对 280+ip 进行限速,必然导致至少 280+的 iptables 遍历规则,影响 cpu 性能。后来改成 ip 范围限速。再后来只对目的端口优先级进行控制简化成了 11 条。
3.11 条神奇的 CONNMARK
SMQ 早期在吹牛的时候并未见有 CONNMARK 标记,实际测起来性能非常糟糕,依然是个高耗 cpu 的 QOS ,后期没测过。这种标记网络常见文档描述为包到连接的标记实现,是目前找到的最节省 cpu 遍历的方法,它还有个神奇的特性在使用 ifb 时,可以将上行标记应用于下行标记,这样在多 vlan 环境只针对一个下行的 ifb0 就可以控制。
4.TCPMSS pmtu
这个都增加下/上行 2 条规则,据说能极大的提高网络呑吐能力

总之是无关路由功能的消耗 cpu/内存的功能别集成到固件,尽可能的优化规则减少 cpu 占用包括遍历时间。
另外想玩得溜只有学习 openwrt ,才能根据别人的讨论自主裁减固件,ddwrt/tomato 之流很难深入。忘了说了 QOS 规则是从 tomato 中学来的,非常受用。这么多年不再寸进。
revelationtan
207 天前
还有就是硬件加速不是说 X86 就没有,如果你用一些带硬件加速的网卡也是可以在 x86 上实现硬件加速
只是很多 DIY 的 x86 路由器没人会去调而已,绝大部分家用网卡什么的也没有硬件卸载能力
企业级的高端路由器或者防火墙里 x86 架构还是挺多的,可以用于实现处理那些物理硬件无法处理的 QoS 或者防火墙规则
crac
207 天前
专用处理器和通用处理器的区别,换个例子 手机相机的 ISP 处理器,如果相关的功能跑在 cpu 上,至少消耗掉 1 个 cpu 物理核心

降噪也是
rulagiti
207 天前
@datocp 大部分家用还用不到 qos ,大带宽硬件加速是真有用。
szsgz
207 天前
@murchef #31 这位兄弟的回复最有用!!感谢!!
kyor0
206 天前
我的 n5105+8g 的主机跑 openwrt ,内存才用了 200mb 。trojan 跑千兆 cpu 占用也就 50%吧。软路由不费性能
JensenQian
206 天前
硬路由有硬件转发的啊
高通 ipq 叫 nss ,联发科的 hwhat
x86 软路由就大力出奇迹
bibiisme
206 天前
爱快的 MTK 平台不支持硬件加速,纯 CPU 转发,不要被误导

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1112069

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX