Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Feb 2008 22:42:45 +0100
From:      Kris Kennaway <kris@FreeBSD.org>
To:        Chuck Swiger <cswiger@mac.com>
Cc:        "freebsd-performance@freebsd.org" <freebsd-performance@freebsd.org>, Alfred Perlstein <alfred@freebsd.org>, Valerio Daelli <valerio.daelli@gmail.com>
Subject:   Re: Bad performance of 7.0 nfs client with Solaris nfs server
Message-ID:  <47BC9ED5.1010505@FreeBSD.org>
In-Reply-To: <B4337B98-B9A2-40A2-9C85-1BCC3F5FB54F@mac.com>
References:  <27dbfc8c0802190243y113d3059yd0c602850a4dbd6b@mail.gmail.com>	<47BB33AD.1050005@FreeBSD.org>	<27dbfc8c0802200323r13f69905l4940d0d5accd1eb1@mail.gmail.com>	<9BCE1D41-EC1A-4FE6-8551-E725DBE5D3A8@mac.com>	<20080220210118.GY99258@elvis.mu.org> <B4337B98-B9A2-40A2-9C85-1BCC3F5FB54F@mac.com>

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

Chuck Swiger wrote:
> On Feb 20, 2008, at 1:01 PM, Alfred Perlstein wrote:
>>> Take a look at the level of packet fragmentation you are encountering;
>>> yes, this is expected and things will work but there is extra latency
>>> added when the IP stack has to reassemble packets before the data can
>>> be delivered.  Try setting the NFS rsize/wsize to 1024 or perhaps 1400
>>> and see whether that improves performance.
>>>
>>> Or, if your switch and NICs support it, see whether you can get Gb
>>> Ethernet jumbo frames working so that you don't have to fragment for
>>> 2K or 4K data packets....
>>
>> TCP mounts do not have this problem.  You can safely use
>> 32k or higher sizes with TCP without fragmentation.
> 
> Oh, sure.  But there is a bit more overhead with TCP transport than 
> UDP-- for local (switched) networks, UDP generally seems to be a 
> win...TCP seems to be a better choice over a VPN or some similar kind of 
> WAN.

Actually this is no longer true.  At modern LAN speeds (e.g. gige) you 
can transmit packets fast enough that two things happen:

1) UDP socket buffer overruns are common, leading to packet loss.

2) the 16-bit sequence numbers wrap *much* faster than the IP fragment 
lifetime (30 seconds).

These combine to cause data corruption when fragmented packets are 
dropped and then reassembled with a later transmission of the same 
sequence number.

TCP mounts should be used whenever possible thesedays (I flipped the 
default mode in 8.0 the other day).

Kris


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47BC9ED5.1010505>