-1

I have a NFS server hooked up to a client over a wireless network (n-router, b/g-client). I have terribly slow transfer rates of around 1.00 to 1.50 MB/s. I cannot seem to figure out how to improve this.

I have played around with rsize/wsize but it doesn't seem to make a difference. My exports on the server is the following:

cat /etc/exports
<SERVER-DIR> *(rw,async,no_subtree_check)

On the client side I see this:

cat /proc/mounts
<SERVER-IP>:<SERVER-DIR> <CLIENT-DIR> nfs4 rw,relatime,vers=4.0,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=<CLIENT-IP>,local_lock=none,addr=<SERVER-IP> 0 0

Shouldn't be able to achieve up to 6-times higher transfer rates?

For comparison: Wired (100Mb/s):

dd if=/dev/zero of=test bs=1M count=128
134217728 bytes (134 MB) copied, 18.5636 s, 7.2 MB/s

Wireless:

dd if=/dev/zero of=test bs=1M count=128
134217728 bytes (134 MB) copied, 99.4493 s, 1.3 MB/s
7
  • 2
    What is the network latency between client and server? Have you tried this over a wired connection? How do you know it's the Wifi that is causing the problem?
    – EEAA
    Feb 12, 2014 at 1:12
  • Added wired vs. wireless tests. Running ping returns in about 0.75ms.
    – Markus
    Feb 12, 2014 at 1:26
  • What's the signal strength and contention on the Wifi ?
    – Lawrence
    Feb 12, 2014 at 1:28
  • I think the signal strength is unlikely an issue since I am about 3ft from the router.
    – Markus
    Feb 12, 2014 at 1:30
  • @EEAA your initial answer was a bit condescending in my opinion...
    – Markus
    Feb 12, 2014 at 1:43

1 Answer 1

10

NFS. Over wireless. Using a b/g client (are you even sure you're linked up a G rates?).

You're going to have a bad time here.

Even if you're linked up at the theoretical maximum for 802.11g (54Mbps), and there is no RF interference (very unlikely in the 2.4GHz band), you still have a theoretical max of about 6.75MBps. Count in protocol overhead, retransmits at several levels of the stack, and network latency, you should be happy with what you're getting now.


Honestly, NFS is a very touchy protocol. It doesn't do well with the lossy, up-and-down nature of wireless connections. At the very best, you'll have poor performance. With a typical wireless connection, you'll have atrocious performance, corrupted files, hung mounts, and perhaps worse.

If you need to access storage over wifi, use a different protocol that is a bit more resilient to network issues. CIFS, AFS, Samba, etc. will all do much better than NFS.

6
  • 1
    @Markus - This was not the answer you wanted to hear. I know. Downvote if you like. That doesn't change the facts that you have a hard (perhaps impossible) road ahead of you if you're hoping to get any more performance out of your current setup.
    – EEAA
    Feb 12, 2014 at 1:39
  • 1
    Wrong, CIFS/SAMBA will give you half the speed.... and is probably the worst way to go. This is usually suggested by windows users that dont know what they are talking about. Its easy just do a side by side test of them both. Apr 23, 2014 at 1:50
  • 3
    @ChangosMuertos - There's much more to this than pure speed. I am not a windows user. I am very much a linux admin. If you need evidence, look at my tags and see which tags (linux or windows) I have more answers for. That said, regardless of platform, I know a bad architectural decision when I see one, and running NFS over wifi is a perfect example of something that will be painful, will cause downtime, and will likely cause data loss.
    – EEAA
    Apr 23, 2014 at 2:46
  • @ChangosMuertos - you know what's funny? This answer has gained two upvotes (+20) since your comment and downvote (-1). :)
    – EEAA
    Apr 23, 2014 at 3:45
  • I wouldn't expect corrupted files, at least on any modern client (which should default to hard mounts and tcp). Mar 18, 2016 at 21:12

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .