I initially had high hopes for the raspberry pi 3 and snapped up three of them. I hoped to see one take the place of my media center, another two for monitoring tasks. Unfortunately I became less than enthused about the pi for a media center as it has no good way to stream of youtube or vidangel. Additionally it couldn’t keep up with streaming some HD videos.
It has now been a few months since my initial disappointment and I decided to try out the new firmware and see if things got better.
The first tests i ran were using iperf. One raspberry pi, rpi1, was left behind at the old firmware. Another pi, rpi2, was upgraded to the latest.
|
Firmware |
Kernel |
rpi1 |
1b7da52ec944a9e1691745036966b3b2a48b19e8b (Apr 7 2016) |
4.1.21-v7+ |
rpi2 |
1e7b8e2c9a7319f7b22869f1334c66e2cfc99f4a (Jun 27 2016) |
4.4.14-v7+ |
Initial iperf test (iperf client running on my macbook, server on each raspberry pi – tests were run independently, on one raspberry pi at a time):
Run | Rpi1 |
Rpi2 |
1 | 28 Mbits/sec |
39 Mbits/sec |
2 | 31 Mbits/sec |
37 Mbits/sec |
3 | 30 Mbits/sec |
39 Mbits/sec |
4 | 30 Mbits/sec |
38 Mbits/sec |
I also tried this with a parallel iperf test (iperf -c -P 10)
Run | Rpi1 |
Rpi2 |
1 | 30 Mbits/sec |
34 Mbits/sec |
2 | 29 Mbits/sec |
38 Mbits/sec |
3 | 29 Mbits/sec |
35 Mbits/sec |
4 | 29 Mbits/sec |
35 Mbits/sec |
I also wanted to test sustained (iperf -c -t <10,120>)
Duration (seconds) |
Rpi1 |
Rpi2 |
10 |
29 Mbits/sec |
39 Mbits/sec |
120 |
29 Mbits/sec |
35 Mbits/sec |
Even on a udp iperf test (-u on the server, -b 50m on client) rpi1 gets 32 Mbits/sec, rpi2 gets about 39 Mbits/sec. In all cases there is a 5-9 Mbits/sec average higher increase with the new firmware. Pretty significant!
Note that if I run these same tests where my macbook is the client but a virtual machine on my network is the server, I see transfer rates in the 500 Mbit/sec range (the -P 10 test gave 513 Mbits/sec and the UDP test -b 1000m gave 627 Mbit/sec). This at least demonstrates that my infrastructure is more than capable of higher transfer rates. Thank goodness for 802.11ac routers!
It is also worth noting a few differences between the pi and vm tests. One difference is that the virtual machine is on a direct-cabled server, whereas both the raspberry pi and macbook are on wireless. Thus for the VM test, only one traversal of wifi is needed, whereas macbook to pi tests involve two traversals.
Now, if I upgrade rpi1 I would expect the numbers to be equal. Right…?
Strangely, no. Even after the upgrade I see rates in the 30Mbits/sec for rpi1. Digging deeper I found one minor discrepency between the two – i set aside 256 MB for gpu ram on rpi1, but only 128 MB on rpi2. Even after switching rpi1 to 128 MB, I still see the same numbers on both. I noticed I had a wireless keyboard adapter on the slower pi – but removing it didnt affect the transfer rates.
Another difference is that there is a raspberry pi camera on the faster pi – it would be interesting to see if that affects things.
I tried testing the ethernet interfaces and found performance across the pis identical.
At the moment I’m not sure how to account for the roughly 25% higher wifi performance on one pi over the other.