修复家庭网络中的缓冲膨胀


9

在我们的家庭网络中,随着连续的网络IO发生的延迟变得可笑。在轻负载下就可以了,但是如果我要同步大量小文件,其他传输基本上会停止,那很快就会变得不可用。ping勉强通过。

简单的拓扑结构-宽带调制解调器/ WIFI路由器放在一个盒子里,带有一些无线和一些有线客户端。

我尝试ifconfig wlan0/eth0 txqueuelen 1对所有客户端进行设置,这似乎有所帮助,但效果不大。

温馨提示:我应该如何诊断和消除延迟问题?我可以在客户端上设置更多的配置设置,还是更好的WIFI路由器可以帮助您?

Answers:


3

您需要的是服务质量和可调整的排队算法。如果您愿意使用Linux / FreeBSD的内部结构并有一些备用现金,我建议您使用类似的设置:

+------+     +--------+      +------+<----> Wireless Access Point
|Router|<--->|Firewall|<---->|Switch|
+------+     +--------+      +------+<----> Wired computers

如果防火墙是具有2个网卡的Linux或FreeBSD或类似机器,则可能会对流量强加一些高级排队和服务质量规则。

通过较慢的Internet连接进行大量数据传输时,我必须执行类似的操作以阻止DNS查找超时。

另一种选择是获得更好的路由器-可以安装dd-wrt或open-wrt的路由器,因为我相信这两种固件在QoS等方面提供的功能比标准家用路由器还要多。


2

我尝试ifconfig wlan0/eth0 txqueuelen 1对所有客户进行设置...

该命令将该计算机上的缓冲区大小减小到1个数据包。运行此命令的重要机器是您网络的瓶颈-即,一侧具有千兆位连接,而另一侧具有较慢的Internet连接。因此,这是您要在其上运行该命令的路由器,而不是客户端!
确保在正确的接口(仅是出站LAN接口)上运行命令。

当然,这仅在您的路由器运行Linux并允许您运行命令的情况下才有效。幸运的是,大多数家用路由器的自定义固件(DD-WRT,OpenWRT,Tomato)都可以。


应当注意的是,这样减小缓冲区大小可能会破坏QoS,因此,如果您在路由器上使用QoS,则最好不理会缓冲区大小,而仅使用QoS来限制上传/下载速度每个客户端的数量都大大低于连接的最大上载/下载量……尽管这样做的明显缺点是,只有一个人连接时,带宽却没有使用。


1

QoS或服务质量是一种排序和设置要由路由器处理的数据包的优先级...当您遇到此类问题时,这正是应该照顾的问题...尝试在路由器配置面板中搜索并启用QoS ...最好在您使用的情况下使用手动设置,但是您应该知道要首先处理的数据包的优先级顺序。


0

我使用Windows和Mac而不是Linux,但是对我来说,一个解决方案是将ISP盒下游的Netgear路由器切换到Edge路由器,并设置智能路由(来自Linux)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.