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.
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"