On 5/18/2015 7:15 AM, Harald Barth wrote: > > * UDP in chunks of 1444 bytes (RX) > > Is that some kind of adaption to MTU (which in case of the loopback > interface is quite wrong)? Is there a way to just tell rx to use > the max UDP size and let the OS deal with the rest?
1444 is the number of octets after subtracting the ip/ip6 and udp/udp6 headers for a network with MTU of 1500. Remember that Rx takes advantage of larger network MTUs via the use of Jumbograms which combine multiple Rx packets into one UDP message. Also remember that jumbo grams are disabled by default because of the negative impact that occurs when using them over the public Internet. This value cannot be easily changed. The biggest cause of the performance problems you are seeing is Rx. The window size is small and every time that the sender doesn't have data to send the connection stalls. Every time the reader performs disk i/o it stops reading from the stream and the Rx connection stalls. Rx (as implemented in OpenAFS) does not recovery gracefully when the flow of data is interrupted. This behavior is worse over loopback because the call window fills much more rapidly since there is minimal RTT latency. Volume moves, releases and dumps are some of the operations in which the AuriStor Rx stack performance changes are quite noticeable. There are other performance improvements that can be made outside of Rx but their impact will be limited by that of the Rx implementation. Jeffrey Altman
smime.p7s
Description: S/MIME Cryptographic Signature
