Monday 7 April 2014

Part two: Raspberry Pi WiFi throughput test


Update (2015-02): There will be little to no change in throughput performance from the new Raspberry Pi Generation 2 Model B (900MHz quad-core ARM Cortex-A7 BCM2836) over the older Raspberry Pi Model B+ (700MHz ARM11 BCM2835), since the USB performance bottleneck is still the LAN9514 USB/Ethernet controller and will not be improved by additional CPU or RAM.

Update (2014-07): There is a new RPi model B+ with 4 USB ports (well 5 in fact when you include ethernet using a LAN9514 chip instead of 3 ports using the LAN9512 in the model B). Just to be clear the tests below were done on the model B. If and when I repeat the the tests with a model B+ I do not expect to see better performance.



When I looked at the performance of 802.11n I only looked at the highest possible throughput setting that I could setup (In my case a 150Mbps on a TP-LINK WN725N which is software compatible with 8188eu USB Wifi dongle). But not everyone has a 802.11n WiFi adapter, so I decided to run the tests again but this time to force the Wifi to lower performance modes, to see the different throughput rates. This is wireless so my results will differ than anyone else's but they should give a idea of what kind of real world (non-marketing) throughput to expect.

But one thing to remember is that these are maximum throughput rates, since all WiFi data received is being thrown away. If the data was written to an SD card then four other things would need to be factored in: The make and model of the SD card, the read performance of the card; the write performance of the card and most importantly the age of the card. The more writes you do to a SD card the slower it's overall performance becomes, anyhow the initial performance of most SD cards can be found here

The setup is exactly the same as last time. A midrange Linux PC running a nginx webserver serving a 100MiB file from a 256MiB RAM disk. The data flows through a 1Gigabit/sec full duplex NIC to a home cable modem from there it is sent via WiFi to my USB Raspberry Pi WiFi NIC and finally sent to /dev/null to eliminate any SD/harddisk access times. I set the speed on the broadband router to three different settings:
54Mbit/sec = disable 802.11n.

72Mbit/sec = 802.11n 20MHz bandwidth,
150Mbit/sec = 802.11n 40MHz bandwidth,

And after setting the channel and speed, I confirmed both had actually changed correctly on the RPi with the iwconfig command. I also download the same 100MiB file 3 times in a row and these are the numbers MiB/second numbers on each row below.

e.g.
wget http://192.168.1.100/ramdisk/speedtest-100MB.bin -O /dev/null ; wget http://192.168.1.100/ramdisk/speedtest-100MB.bin -O /dev/null ; wget http://192.168.1.100/ramdisk/speedtest-100MB.bin -O /dev/null


pi@raspberrypi ~ $ sudo iwconfig wlan0
wlan0     IEEE 802.11bgn  ESSID:"**********"  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency:2.472 GHz  Access Point: 80:C6:AB:**:**:**
          Bit Rate: 54 Mb/s   Sensitivity:0/0
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:****-****-****-****-****-****-****-****   Security mode:open
          Power Management:off
          Link Quality=100/100  Signal level=100/100  Noise level=0/100
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
pi@raspberrypi ~ $



802.11a
802.11 band: 2.4GHz
Bit Rate: 54Mb/s  (6.44MiB/sec)
Bandwidth 20MHz 
Download rate: 1.51 MiB/sec <-> 3.37 MiB/sec
Download rate: 12.67 Mbit/sec <->  28.27 Mbit/sec
channel  1  Frequency:2.412 GHz  2.10 MB/s 2.14 MB/s 2.12 MB/s
channel  2  Frequency:2.417 GHz  1.83 MB/s 1.88 MB/s 1.87 MB/s
channel  3  Frequency:2.422 GHz  1.51 MB/s 1.57 MB/s 1.55 MB/s
channel  4  Frequency:2.427 GHz  1.61 MB/s 1.64 MB/s 1.65 MB/s
channel  5  Frequency:2.432 GHz  2.30 MB/s 2.29 MB/s 2.28 MB/s
channel  6  Frequency:2.437 GHz  2.48 MB/s 2.45 MB/s 2.44 MB/s
channel  7  Frequency:2.442 GHz  2.92 MB/s 2.91 MB/s 2.93 MB/s
channel  8  Frequency:2.447 GHz  2.96 MB/s 2.98 MB/s 2.97 MB/s
channel  9  Frequency:2.452 GHz  2.72 MB/s 2.74 MB/s 2.69 MB/s
channel 10  Frequency:2.457 GHz  3.00 MB/s 3.06 MB/s 3.05 MB/s
channel 11  Frequency:2.462 GHz  2.98 MB/s 3.01 MB/s 3.05 MB/s
channel 12  Frequency:2.467 GHz  3.22 MB/s 3.21 MB/s 3.23 MB/s
channel 13  Frequency:2.472 GHz  3.36 MB/s 3.37 MB/s 3.34 MB/s



802.11n
802.11 band: 2.4GHz
Bit Rate: 72  Mb/s (8.58MiB/sec)
Bandwidth 20MHz
Download rate: 3.77 MiB/sec <-> 6.15 MiB/sec
Download rate: 31.63 Mbit/sec <->  51.59 Mbit/sec

channel  1  Frequency:2.412 GHz  4.47 MiB/s 4.68 MiB/s 4.74 MiB/s
channel  2  Frequency:2.417 GHz  4.28 MiB/s 4.32 MiB/s 4.10 MiB/s
channel  3  Frequency:2.422 GHz  3.82 MiB/s 3.82 MiB/s 3.77 MiB/s
channel  4  Frequency:2.427 GHz  4.08 MiB/s 4.06 MiB/s 4.22 MiB/s
channel  5  Frequency:2.432 GHz  5.15 MiB/s 4.84 MiB/s 4.97 MiB/s
channel  6  Frequency:2.437 GHz  5.27 MiB/s 5.19 MiB/s 5.31 MiB/s
channel  7  Frequency:2.442 GHz  5.47 MiB/s 5.61 MiB/s 5.76 MiB/s
channel  8  Frequency:2.447 GHz  5.92 MiB/s 6.15 MiB/s 6.04 MiB/s
channel  9  Frequency:2.452 GHz  5.45 MiB/s 5.44 MiB/s 5.41 MiB/s
channel 10  Frequency:2.457 GHz  6.04 MiB/s 6.12 MiB/s 6.02 MiB/s
channel 11  Frequency:2.462 GHz  5.72 MiB/s 5.63 MiB/s 5.67 MiB/s
channel 12  Frequency:2.467 GHz  5.78 MiB/s 5.85 MiB/s 5.74 MiB/s
channel 13  Frequency:2.472 GHz  6.07 MiB/s 6.11 MiB/s 6.08 MiB/s



802.11n
802.11 band: 2.4GHz
Bit Rate: 150  Mb/s (17.88MiB/sec)
Bandwidth 40MHz
Download rate: 4.03 MiB/sec <-> 9.67 MiB/sec
Download rate: 33.81 Mbit/sec <-> 81.11 Mbit/sec

channel  1L Frequency:2.412 GHz  8.92 MiB/s 9.24 MiB/s 7.66 MiB/s
channel  2L Frequency:2.417 GHz  8.46 MiB/s 8.99 MiB/s 5.70 MiB/s
channel  3L Frequency:2.422 GHz  9.16 MiB/s 8.41 MiB/s 9.32 MiB/s
channel  4L Frequency:2.427 GHz  5.19 MiB/s 8.62 MiB/s 8.31 MiB/s
channel  5L Frequency:2.432 GHz  4.23 MiB/s 4.37 MiB/s 4.74 MiB/s
channel  6L Frequency:2.437 GHz  4.03 MiB/s 7.91 MiB/s 9.38 MiB/s
channel  7L Frequency:2.442 GHz  8.22 MiB/s 8.01 MiB/s 8.03 MiB/s
channel  8L Frequency:2.447 GHz  9.58 MiB/s 8.12 MiB/s 9.67 MiB/s
channel  9L Frequency:2.452 GHz  5.47 MiB/s 5.26 MiB/s 5.35 MiB/s

channel  5U Frequency:2.432 GHz  7.91 MiB/s 7.92 MiB/s 9.48 MiB/s
channel  6U Frequency:2.437 GHz  7.58 MiB/s 9.05 MiB/s 7.58 MiB/s
channel  7U Frequency:2.442 GHz  7.10 MiB/s 9.48 MiB/s 9.41 MiB/s
channel  8U Frequency:2.447 GHz  9.52 MiB/s 9.38 MiB/s 9.15 MiB/s
channel  9U Frequency:2.452 GHz  9.42 MiB/s 9.22 MiB/s 9.07 MiB/s
channel 10U Frequency:2.457 GHz  8.77 MiB/s 9.46 MiB/s 8.10 MiB/s
channel 11U Frequency:2.462 GHz  8.65 MiB/s 9.30 MiB/s 9.41 MiB/s
channel 12U Frequency:2.467 GHz  8.64 MiB/s 9.01 MiB/s 9.34 MiB/s
channel 13U Frequency:2.472 GHz  9.02 MiB/s 9.55 MiB/s 8.45 MiB/s

My Wifi router supports four 20MHz channels in the 5GHz band (36, 40, 44, 48 [5.180GHz 5.200GHz 5.220GHz 5.240GHz]) but unfortunately my TP-LINK nano USB WN725N only supports the 2.4GHz band (2.4 ~ 2.4835GHz), so I can't test the throughputs in the 5GHz band. Which is a pity, because higher RF frequency means lower penetration depth into objects, so I would expect less interference at higher frequencies.

No comments:

Post a Comment