Re: NFS under load?

From: Dylan Griffiths <dylang_at_no.spam.please>
Date: Fri Jul 06 2007 - 19:20:42 CST

        A bit of a followup. A NetGear GS108 arrived today on my doorstep.
This is listed on the gigE jumbo frame site as being clean up to around
9k packets ( http://darkwing.uoregon.edu/~joe/jumbo-clean-gear.html )
which nicely complements my Intel EEPRO gigEs (good up to 16,000).

" 9216 MTU (9198+18 bytes of ethernet header/trailer) Ethernet "

This is what it looks like tweaking:

MTU = 1500

Client connecting to zephyr, TCP port 5001
TCP window size: 640 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.0.2 port 55536 connected with 192.168.0.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 134 MBytes 112 Mbits/sec

MTU = 4096

------------------------------------------------------------
Client connecting to zephyr, TCP port 5001
TCP window size: 640 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.0.2 port 50619 connected with 192.168.0.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.1 sec 169 MBytes 141 Mbits/sec

MTU = 8192

------------------------------------------------------------
Client connecting to zephyr, TCP port 5001
TCP window size: 640 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.0.2 port 59217 connected with 192.168.0.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.1 sec 373 MBytes 310 Mbits/sec

MTU = 9000

------------------------------------------------------------
Client connecting to zephyr, TCP port 5001
TCP window size: 640 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.0.2 port 50617 connected with 192.168.0.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-135.7 sec 3.53 MBytes 218 Kbits/sec <=== OUCH!

So something breaks at MTU = 9000, but at least it works past 1500
(unlike the crap gigE switch I got at OTV for $30 less than this NetGear
one).

A switch that was $80 vs. a $50 one nets me a 3x speedup in this little
test, or about 30% of what I should be able to get in theoretical max.
The 2.6 kernel tries to auto-tune its TCP windows to support such high
speed transfers (a full discussion of TCP windows is best left to a
networking course), so if you're using newer than 2.6.7, you shouldn't
need to tweak sysctl.conf.

The issue I still have is that NFS is kicking around 60-120Mbps, not the
300 I can get using iperf over TCP. I'll have to do some more tweaking
(Tony Arkles sent me some great resources to work from).

It's worth noting that with 2gb of RAM, the kernel decided to swap out
most of my running processes to buffer the iperf TCP transfer! Load
averages went pretty high :(
Received on Fri Jul 6 19:22:23 2007

This archive was generated by hypermail 2.1.8 : Fri Jul 06 2007 - 19:23:46 CST