Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Jun 2008 19:13:55 +1000
From:      Jerahmy Pocott <quakenet1@optusnet.com.au>
To:        Matthew Dillon <dillon@apollo.backplane.com>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: Sysctl knob(s) to set TCP 'nagle' time-out?
Message-ID:  <BFAD9FEC-A15B-4109-AB61-A3B8814898CE@optusnet.com.au>
In-Reply-To: <200806230827.m5N8RBlW085475@apollo.backplane.com>
References:  <0222EAC1-A278-41D2-9566-C9CF19811068@optusnet.com.au> <200806230827.m5N8RBlW085475@apollo.backplane.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On 23/06/2008, at 6:27 PM, Matthew Dillon wrote:

>    Can it break down and cause excessive lag?  Yes, it can.   
> Interactive

>    games almost universally have to disable Nagle because the lag is
>    actually due to the data relay from client 1 -> server then  
> relaying
>    the interactive event to client 2.  Without an immediate  
> interactive
>    response to client 1 the ack gets delayed and the next event from
>    client 1 hits Nagle and stops dead in the water until the first  
> event
>    reaches client 2 and client 2 reacts to it (then client 2 ->  
> server ->
>    (abort delayed ack and send) -> client 1 (client 1's nagle now  
> allows
>    the second event to be transmitted).  That isn't a deadlock, just
>    really poor interactive performance in that particular situation.

Yeah, that's what I'm talking about.

True, it's not really a dead-lock, but it's terribly slow! The  
interaction can
cause a 200ms delay on a LAN, as can be seen with samba if you disable
tcp_nodelay..


>    In anycase, the usual solution is to disable Nagle rather then mess
>    with delayed acks.  What we need is a new Nagle that understands  
> the
>    new reality for interactive connections... something that doesn't  
> break
>    performance in the 'server in the middle' data relaying case.


Exactly, there is nothing really wrong with delayed acks.. But with  
sysctl
I CAN disable and mess with the delayed acks, but I can't seem to do
anything to Nagle.

That's why I was thinking if I could change the Nagle time-out to 0ms it
would effectively disable it..

Cheers.
J.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BFAD9FEC-A15B-4109-AB61-A3B8814898CE>