multiplexing TCP sockets in the NFS client

Rick Macklem rmacklem at uoguelph.ca
Fri Aug 10 08:28:21 PDT 2007


Long long ago, I felt it might be better to use a separate TCP socket
for each mount to the same server. The argument was along the lines of:

 	Some mounts might be much busier than others and, as such, the
 	separate TCP socket would provide feedback to the client w.r.t.
 	load on that mount. The assumption w.r.t. busier mount points
 	tacitly assumed separate disks with some disks experiencing
 	heavy I/O loads.

It seems to me that these days, what with SANs, RAIDs, GEOM,... that a
mount point probably isn't going to reflect a different disk subsystem
so much as an administrative boundary. Also, it's not obvious that the
feedback argument is relevant anyhow, since clients will still receive
replies when the server gets around to doing the RPC, in any case.

So, I'm thinking that it might be better to change the client code so that
it shares one TCP connection between all mounts to the same server. This
reduces the number of TCP connections (possibly an issue if clients use
an automounter to do a lot of mounts). It might also help w.r.t transport
performance by increasing the volume of data being transferred on the TCP
connection? (I don't know enough about current TCP stacks to know if this
is the case or not?)

Any comments? rick



More information about the freebsd-fs mailing list