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

Reply via email to