Networking – SMB file transfer speeds too low over local LAN

file-transfernetworkingroutersambawireless-networking

I have built a file server for my home network. It has a 3TB Sata 3Gb/s HDD on a Dual Celeron Mini ITX mobo with 2GB DDR3 RAM. I have installed Ubuntu minimal runing off a flashdrive. I installed samba and configured it with webmin.

I bought a D-Link DSL-2730R router, the specs says it is 10/100 and b/g. I connected the router to the server via ethernet, and configured samba via webmin.

My laptop is in a room next to my router. When transfering files from/to my Ubuntu laptop, I get about 1,5MB/s on Nautilus. If I place my laptop in the same room, 30cm of the router, I get about 2,5MB/s.

I used an android app to check for the wifi channel with less interference and set it to a channel with no other SSIDs on it, and I disabled WPA2PSK and left the wifi open (for a few minutes, just for testing). The speed increased to a peak of 2,8MB/s.

If I disable wifi and connect via ethernet I get speeds aroun 6,6~7,9 MB/s. (All the teste were performed with the same file, a 300MB file).

Then I tried an android app to test local wifi LAN transfer speed and it says my link speed is 54Mbps, signal is -59 dBm, download is 6967Kbit/s and upload is 3545Kbit/s.

According to this answer the top theoretical speed on 802.11g is 6.7MB/s, but I'm getting less than 25% of it.

Best Answer

Yes, theoretically the speed of 802.11g is 6.75MB/s. (54Mbps / 8 = 6.75MB/s)

In the same answer it says the practical speed is 4MB/s (so now the 2.5MB/s is at 63% instead of 37%) (counting 6.75MB/s and 4MB/s against 2.5MB/s).

A bit more down you'll see an answer stating a source which says maximum of 3,1MB/s. (so now your at 80%).

Now calculate that the SMB-protocol is know for being very "chatty"; you'll lose a lot there too because your client also has to upload/download chatter for the protocol, easily losing much of the remaining 20%.


But now look at it from another angle. Let's look at the cable speed. You said it was 6,6~7,9 MB/s on a cable (with 100Mbps). So you already loose almost half the speed using SMB via cable.

Now take the WiFi. Even if your "link"-speed is 54Mbps, your actual speed will be more like 40Mbps. (40Mbps / 8 = 5MB/s) 40Mbps is 40% of the 100Mbps of the cable. So when we take 40% of the speed of the cable we get 6,6MB/s * 0.40 = 2,64MB/s. And this is in optimum circumstances. (If you take 4MB/s from the quoted answer you'll get 2,11MB/s.

So it all fits ;)


Now about the test with the app you did. You're getting 6967Kbit/s. This is Kbit/s. It's a lot less than you actually think. It's 6,8Mbps (while you should be getting 30-40Mbps or at least 20Mbps like me). That's just 870KB/s = 0.85MB/s !!! So it's a wonder you're getting 2.0MB/s file-copies ;)
Did you do the client-test or the "SMB-test" ?? (I did the "client-test".)

(I only get 19520Kb/s download with the "client-test" to a pc 2 rooms over)

Related Question