我有一个 ARM Linux 板,它是其他 16 个板的路由器。当所有这些都通过路由器下载更新时,网络路由工作会导致用户空间匮乏,从而导致软件看门狗(以及后来的硬件看门狗)在路由器上触发。
有没有一种方法可以在不丢包的情况下加强路由工作?
我知道我可以以“高于正常”的优先级运行应用程序,但这会产生其他不需要的副作用。我还尝试过使用入口过滤器和令牌桶过滤器进行流量整形,但即使我将带宽使用限制到 1-2 mbps,也没有成功。如果我将节点数量减少到 5 个,平均可以提供高达 15mbps 的服务,峰值为 20mbps。硬件速度太慢,无法在快速以太网链路上达到 30mbps 以上。
拓扑结构:
eth0
:每个板上的公共网络eth1
:朝向 FTP 网关,仅在路由器上- 没有桥接,只有 IP 转发
答案1
我会考虑更改路由的替代方案,以支持在单个 ARM Linux 板上同时进行 30 个下载。
您是否考虑过设置透明的 Squid 代理?这些更新不是为每个板下载 16 次,而是为每个板下载一次,Squid 代理会缓存单个下载并将其提供给每个下游板。