Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Jan 2014 09:20:01 +0100
From:      Matthias Andree <mandree@FreeBSD.org>
To:        freebsd-net@freebsd.org
Subject:   Re: Terrible NFS performance under 9.2-RELEASE?
Message-ID:  <52E0D0B1.3090104@FreeBSD.org>
In-Reply-To: <2057911949.13372985.1390269671666.JavaMail.root@uoguelph.ca>
References:  <2057911949.13372985.1390269671666.JavaMail.root@uoguelph.ca>

next in thread | previous in thread | raw e-mail | index | archive | help
Am 21.01.2014 03:01, schrieb Rick Macklem:
> Since this is getting long winded, I'm going to "cheat" and top post.
> (Don't top post flame suit on;-)
> 
> You could try setting
> net.inet.tcp.delayed_ack=0
> via sysctl.
> I just looked and it appears that TCP delays ACKs for a while, even
> when TCP_NODELAY is set (I didn't know that). I honestly don't know
> how much/if any effect these delayed ACKs will have, but is you
> disable them, you can see what happens.

These are separate mechanisms. Not sure if it applies here, but anyways:

TCP_NODELAY (opposite is "TCP Cork" or "corking") is for the sending end
and means "send data even if you have unacknowledged data in flight and
the buffer is not yet full" - and probably does not have much of an
impact on bulk sends because you stuff packets full, and then they get sent.

Delayed ACK is a feature of the receiving end of the stream so you can
bundle return/response data with the ACK (because the "ACK" basically is
only any TCP packet with the bumped sequence number in the header).

http://www.stuartcheshire.org/papers/NagleDelayedAck/

Mind the warnings at the end of the document - make sure to not impair
congestion control and fairness, if you want to avoid harder-to-debug
performance issues with mixed traffic in the network (i. e. more than
your synthetic NFS tests or NFS-dominated use).

It'd be interesting to see if there has been research on the Minshall
modification vs. TCP fairness (TCP fairness is paramount through all the
TCP research papers, but I have not looked at that for a few years now,
and I predominantly looked at other aspects of congestion control at the
time).

Links (not necessary URLs) welcome, especially if not delaying acks
turns out to improve the situation.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?52E0D0B1.3090104>