Re: nfs udp 1000/100baseT issue
From: Helge Hafting
Date: Fri Mar 17 2006 - 04:10:48 EST
Bret Towe wrote:
On 3/16/06, Neil Brown <neilb@xxxxxxx> wrote:
There is no flow control in UDP
is this a linux design flaw or just nature of udp?
That has nothing to do with linux at all.
"Now flow control in udp" is a udp design issue. And it is not
a flaw either - the rule is simple:
If you need flow control - use tcp.
If you don't need flow control, and don't want the
overhead of flow control - use udp.
Udp is for those cases where flow control is consideres a waste of time.
Now, the original decision to base early NFS on udp, that was
a design mistake. Again, not a linux problem but a nfs problem.
Fortunately, today a solution for this exists and is implemented
in linux - and it is nfs over tcp.
. If anything gets lots, the client
has to resend the request, and the server then has to respond again.
If the respond is large (e.g. a read) and gets fragmented (if > 1500bytes)
then there is a good chance that one or more fragments of a reply will
get lots in the switch stepping down from 1G to 100M. Every time.
Your options include:
- use tcp
im wondering why this isnt the default to begin with
Hard to say. I guess someone thought they could get better
performance with udp - it has less overhead.,
Then didn't bother testing this idea with a somewhat congested network?
Helge Hafting
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/