Re: Throughput riddle
On 03/18/2016 09:48 AM, Celejar wrote:
I'm trying to understand the throughput across the different links of
my little home network, and am perplexed by the measured wireless
The three main devices I'm interested in:
Router: Buffalo WZR-HP-G300NH running OpenWrt (Chaos Calmer 15.05).
Gigabit WAN and LAN, 802.11bgn wireless.
Laptop: Thinkpad T61 running Jessie 8.3. Gigabit ethernet, 802.11abgn
NAS: Seagate GoFlex Net [STAK100] runninng Debian Jessie 8.3.
All throughput measurements taken with iperf (run three times and using
the median result), unless specified otherwise. These first results are
with the laptop connected to the router via cat5:
Laptop - NAS: ~874 Mbps.
I use category 5E cables for Gigabit. Category 5 and category 6 cables
were not reliable for me.
Perhaps the NAS has an automatic crossover feature on it's Gigabit port.
If you do a computer-cable-computer test, you will want a (category
5E) crossover cable.
Make sure you are using the right cables and that they are known good.
I own an Ideal LinkMaster cable tester, and it has been worth every penny:
I suppose this is close enough to the gigabit theoretical max, and there isn't
any significant bottleneck.
Router - NAS: ~217 Mbps
Router - laptop: ~198 Mbps
Here the router CPU is apparently the bottleneck (top shows close to
100% CPU utilization by iperf for at least part of the 10 second iperf
runs). I suppose that this is due to the bits needing to be copied out
of the kernel networking stack into iperf's userspace memory, or
something like that. I don't understanding why the NAS seems to be
doing better, but I suppose it could be an artifact of the data.
The numbers are within 10%, so I'd call them the same as far as router
performance is concerned.
What happens if you connect two Gigabit computers through the router and
run iperf between the computers?
What happens if you connect one Gigabit computer and one 802.11n
computer through the router and run iperf between the computers?
What happens if you connect two 802.11n computer through the router and
run iperf between the computers?
Here's the part that baffles me - these are with the laptop connected
to the router wirelessly:
Laptop - router: ~11.8 Mbps
These numbers actually exhibit significant variance, but they're
generally at least this much, and at most about 15-20 Mbps.
Laptop - NAS: ~14.7 Mbps
Once again, these numbers vary widely, but are in line with the laptop
- router numbers.
Troubleshooting WiFi is tough. Location and orientation of antennas is
critical. Understand that radio waves with a frequency of 2.4 GHz have
a wavelength of ~12 cm. One-quarter wavelength (~1 inch) can change
everything. You typically have little control over other WiFi devices
or other sources of RF interference. All matter in the universe absorbs
and re-radiates energy in curious ways, causing constructive/
destructive interference patterns throughout space. So, Murphy's Law is
certain to strike.
Try repositioning the router. You want the antennas up high, radiating
horizontally (e.g. stick antennas oriented vertically), and far from all
other conductive materials -- metal-frame or masonry walls, electrical
wiring, metallic pipes, metallic ducts, HVAC grilles, metal-film
windows, metal window screens, televisions, other appliances, etc..
Beware of items concealed inside wood-frame walls. Beware of metallic
drywall corner bead.
Test the laptop in several locations. Near-field radiation is more
complex than far-field, so use a wired connection if the laptop anywhere
near the router. A wired Gigabit connection is going to perform better
than 802.11n even under the best conditions, so consider running
category 5E cable to other usage locations. Adjust the router and
laptop radios for minimum power that gives reliable service.
But here's the kicker: Ookla's speedtest (run on the laptop with
speedtest-cli) shows 29.01/5.89 (d/u), and this is fairly consistent.
I'm paying Comcast for 25/5, and they apparently provision at
31.25/6.25, so I'm getting quite close to the theoretical max, even
when the laptop is connected to the router wirelessly. Additionally,
various Android phones also get close to the Comcast provisioned max
when connecting wirelessly to the router.
So the wireless link can apparently push at least 30 Mbps or so, so why
are my local wireless throughput numbers so much lower?
I was originally using one of the common 1/6/11 channels, and I switched
to 3 since I saw a lot of other stations on those channels. This may
have resulted in some improvement, but I'm still stuck locally as
above. What's the explanation for this - how can I possibly be getting
much better throughput to servers tens of miles away than to my local
stations? Does iperf somehow work fundamentally differently from
speedtest? If so, which is a better representation of actual throughput?
It's not clear if you are doing an apples-to-apples comparison. Perhaps
iperf isn't measuring what you think it is.
None of your devices are running the firmware or OS the manufacturer
intended for it. Perhaps you should revert the router and/or NAS, and