NFS : Network Considerations

There are several issues to understand before even starting to tune your network.

First, what’s your network speed? Obviously, if you’re running 10-base-T, your maximum speed is 10 megabits (not megabytes) per second. If you’re using 100-base-T, you top out at 100 Mbps. And if you’re really lucky, your gigabit ethernet network will (theoretically) offer you 1000 Mbps (1 Gbps).

Second, about those TCP offloading cards: they offload the work of TCP from the computer’s main processor. But NFS connections (with rare exceptions) run over UDP. You get no boost from these cards, as far as NFS is concerned, unless you’re using the TCP option.

Third, you need to establish some network baseline numbers before trying any tuning. Get the Network Protocol Independent Performance Evaluator (NetPIPE) at http://www.scl.ameslab.gov/netpipe and take a good look at your network. If you see dramatic differences in speed (for instance, your server reaches clients at 90 Mbps, but your NFS exports are only offering 10 Mbps), the network is NOT your problem.

Fourth, for what network speed is your kernel optimized? If you’ve built your own kernel, you know this. But out-of-the-box kernels (2.4 and 2.6, for instance) are tuned for 100 Mbps. In this area, your kernel imposes some pretty firm limits.