El Sábado, 9 de Septiembre de 2006 12:09, Benoit Myard escribió: > On Fri, Sep 08, 2006 at 11:11:18PM +0200, Jose M. Prieto wrote: > > TCP window scaling can be disabled by setting the kernel parameter > > net.ipv4.tcp_window_scaling to 0 (I am sending this email from a 2.6.17, > > after adding that setting to /etc/sysctl.conf). Disabling window scaling > > will only slightly affect performance over high speed, long distance > > network links, while having it enabled will greatly affect performance > > much more often. So I think it would be wise to disable it in the default > > sysctl.conf. If someone wants window scaling (s)he can comment out the > > line. > > Allthough I'm not sure to really understand the problem, Mark Lord submited > a quick fix on the LKML [1] :
I have just found a good explanation of the problem [1]. It also explains the change made to "fix" the 2.6.8 kernel version. > On Tue, Jun 13, 2006 at 12:58:05PM -0400, Mark Lord wrote: > > Okay. More progress here. The calculation of the "wscale" values is based > > on the "tcp_rmem" sysctl numbers. > > > > The defaults for these *differ* between 2.6.16.18 and 2.6.17-rc*. > > > > 2.6.16: 4096 87380 174760 > > 2.6.17: 4096 87380 2097152 > > > > If I change the tcp_rmem setting on 2.6.17 to match the old value, then > > the website www.everymac.com becomes accessible again: > > > > echo 4096 87380 174760 > /proc/sys/net/ipv4/tcp_rmem > > As argued Linus Torvalds [2] and David Miller [3], disabling Window scaling > is a bad idea since according to David Miller " It is impossible to fill a > cross-continental connection without using window scaling. " > > I would suggest people to use this trick instead of purely disabling Window > Scaling: > > echo 4096 87380 174760 > /proc/sys/net/ipv4/tcp_rmem > > At least, that's what I do since I got hit by this problem. It *does* work > fine. This does not completely disable window scaling, but lowers the default scale factor. And yes, without window scaling it is impossible to fill a cross-continental connection but, how many of as have enough bandwith to fill such a link even with window scaling? 1 in 100, 1 in 1000? On the other hand, when the problem arises, a lot of packets need to be retransmitted, creating congestion in the network. And if I have read correctly, most other operating systems, including Windows XP, don't use window scaling at all. For a long time before upgrading to 2.6.17, I have been experiencing low download rates when upgrading my system via pacman. I thought it was the load on the mirror servers, but now that I have disabled window scaling, pacman uses my whole bandwith. So I get much better network performance disabling scaling than with the tcp_rmem setting. I think disabling window scaling is the best option. Anyways, if others agree that the tcp_rmem setting is better, I have no objection. My main point was that Arch should provide a workaround by default. [1] http://lwn.net/Articles/92727/ _______________________________________________ arch mailing list [email protected] http://www.archlinux.org/mailman/listinfo/arch
