netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: slow tcp acks on loopback device
       [not found] <1122062219.29258.12.camel@stevef95.austin.ibm.com>
@ 2005-07-22 20:08 ` David S. Miller
  2005-07-22 21:42   ` Steve French
  0 siblings, 1 reply; 2+ messages in thread
From: David S. Miller @ 2005-07-22 20:08 UTC (permalink / raw)
  To: smfltc; +Cc: netdev, samba-technical, linux-kernel

From: Steve French <smfltc@us.ibm.com>
Date: 22 Jul 2005 14:56:59 -0500

> Noticing that the loopback device (at least on RHEL4) has an unfortunate
> mtu size 16384 (which is about 50 bytes too small for SMB read
> responses), I did try increasing the MTU slightly.  Changing that to
> 18000 did avoid the fragmentation and the 40ms delay - but what puzzled
> me was why setting TCP_NODELAY after the socket was created did not
> eliminate the delay on the ack and if there is a way to avoid the huge
> tcp ack delay by either doing something else to force client acking
> immediately or to do something on the client side of the stack to get
> the server to send the whole 16K+ frame - it looks like the tcp windows
> is 32K if the value in the tcp acks in the network trace is to be
> trusted.

TCP_NODELAY does not control ACK generation, instead it modifies
the Nagle algorithm behavior when sending data packets.

Please take networking discussions to netdev@vger.kernel.org which
is where the networking developers are.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: slow tcp acks on loopback device
  2005-07-22 20:08 ` slow tcp acks on loopback device David S. Miller
@ 2005-07-22 21:42   ` Steve French
  0 siblings, 0 replies; 2+ messages in thread
From: Steve French @ 2005-07-22 21:42 UTC (permalink / raw)
  To: David S. Miller; +Cc: netdev, samba-technical, linux-cifs-client


> TCP_NODELAY does not control ACK generation, instead it modifies
> the Nagle algorithm behavior when sending data packets.

Looks like RHEL4 had an odd default smb.conf on the server side - the
RedHat smb.conf seems to set SO_RCVBUF and SO_SNDBUF to 8K (reducing
them from their default). This seems very odd since common TCP frame
sizes for this protocol (SMB/CIFS) will be just over 16K (the negotiated
SMB buffer size) as well as even large frames, 60K, for large read/write
requests which Windows sends.  Removing the SO_SNDBUF, SO_RCVBUF options
(as in the smb.conf for other distros), increased performance a lot. 
The Samba Howto recommends against setting them so small as well.

The alternative solution configuring the client end - altering ack
behavior to allow the client to do quick(er) acks probably would have
helped too, but of course has sideeffects (more acks) and it was not
obvious to me how to do that safely from a kernel vfs module.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2005-07-22 21:42 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1122062219.29258.12.camel@stevef95.austin.ibm.com>
2005-07-22 20:08 ` slow tcp acks on loopback device David S. Miller
2005-07-22 21:42   ` Steve French

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).