Well, I think that depends on too many variables. I have a movie server
(OBSD) that exports NFS to two home theatre computers (FBSD). The movie
server is a dual P3 1GHz with 4 U320 SCSI disks in RAID0. When
simultaneously playing different DVDs on the two theatre computers, the
movie server is >90% idle; that's with TCP connection. When using UDP
mounts it's >96% idle. Although movie files are large sequential data,
the bottleneck in my network is my 100Mbs LAN.
I dump DVDs to VOB format using mplayer, so the files are 4-8GBs. This
eliminates caching in my situation. So if you had many front-ends
accessing similar files and caching was taking place, you'd experience
greater efficiency. I believe NFS does do some caching server-side, like
directory lookups, etc.
Also, when I rip a DVD, it goes straight to the NFS mount. The
bottleneck here is my DVD players, which can only read at ~2MB/s. Again,
the movie server is almost idle, barely breaking a sweat.
You can easily saturate a 100Mb LAN with NFS traffic from one NFS server.
I disagree. Too many people try running cheap IDE disks in server
environments and then wonder why they have poor performance. They blame
the software. Get SCSI; it is made for highly random access, which is
what happens when many machines pound on a single logical drive.
Who knows, just try an experiment. From my experience, the bottlenecks
seem to be the local file system (UFS & disk system) of the exporting
machine if many clients. Otherwise, it is network bandwidth. NFS seems
really light on top of UFS, especially when using UDP. BTW, UDP mounts
are very robust when the clients and server are on the same Ethernet
segment.
All I can say is that I love NFS. You're missing out. Plus it is so
simple. I have wanted to check out AFS for fail-over reasons, but too
many docs for me to read.
One last note. Holland's disk structuring is very cool (read his earlier
post for details). If I were to serve NFS to dozens or hundreds of
clients I would use his scheme, however, apply his partitioning scheme
at the host level. If an NFS server is saturated, spread the load by
adding another server. The drawback is that each client has multiple NFS
mounts. However, if you have this many machines uniformly accessing an
NFS array, the entire mounting process should be automated. This is
where clever planning takes place.
-pachl