I recently bought a new NAS (Netgear ReadyNAS Duo) and attached it to my gigabit ethernet network. Unfortunately I only got transfer rates at around 10 MB/s which is really poor. I enabled Jumbo Frames (MTU > 1500) but this didn’t help much. So I did a bit more research and found out that the limiting factor was not only the MTU but the send and receive buffers.
This means my CPU was not able to catch up with the speed of the gigabit ethernet. What I did then was to increase the send and receive buffers for TCP/UDP traffic. É voilà! Now I get at least 35 MB/s. Still not the max a gigabit ethernet can offer, but I’m on the right way. I’d like to see something like 80-90 MB/s. Given the Samsung Disk can do at least 175 MB/s to/from buffer this should be possible.
I use the following parameters in my sysctl.conf:
kern.ipc.maxsockbuf=2500000 net.inet.tcp.sendspace=1000000 net.inet.tcp.recvspace=1000000 net.inet.tcp.mssdflt=7936 net.inet.tcp.delayed_ack=0
The buffers are probably too high, I know.