[OpenAFS-devel] Bad AFS performance over wide area due to packet fragmentation problems

Jeffrey Hutzelman jhutz@cmu.edu
Mon, 25 Aug 2008 16:11:00 -0400


--On Monday, August 25, 2008 07:51:37 PM +0200 Harald Barth <haba@kth.se> 
wrote:

>
>> As '-nojumbo' has a measurable price on our own local network where
>> fragmentation does not exhibit any problem we hesitate to run
>> everything in that mode.
>
> I run with -nojumbo and with RX_MAX_FRAG patched to 1.
>
> On which clients/servers do you see that this would have a performance
> penalty?
>
> Last time I checked on Linux there was no difference in letting the RX
> code produce 4 UDP packets a ~1400 bytes which then are as many
> eternet frames compared to let RX produce 1 packet a ~5600 bytes and
> then the OS fragment it into 4 ethernet packets. Yes, there was a
> difference back in the days of SunOS 4.1.4....

There is a significant difference, because if the OS fragments the packet, 
then all four fragments must make it to the other end in order for anything 
to be received.  If any of the fragments is dropped (say, due to network 
congestion) then the entire packet (all four fragments) needs to be 
retransmitted.  This sort of behavior makes congestion worse, and is why 
path MTU discovery is so important.

-- Jeff