I’ve been using a Cubieboard overclocked to 1.3GHz as my home little NAS server since a few years ago, and just recently I bought a Raspberry Pi 3 thinking it would have been surely faster.
I was especially looking to get better Samba performance.
I have additional ntfs-3g and encryption layers other than Samba, but both boards had their version of Debian installed, with the same packages and same configurations, so the starting configuration was basically the same.
Both were -alternatively- attached to the same Toshiba Canvio 3TB USB3 disk (working in USB2 mode on both boards), and on two adiacent ports on my TP-Link ADSL router.
I overclocked my Raspi3 to 1.5GHz, with sdram_freq set to 500.
For my test, both were alternatively running off the same AC powered USB adapter, under the same wattmeter, each with his own USB power cord.
Well, it was an overall disappointing experience.
Raspberry Pi 3 @ 1.5GHz
- Download speed via Samba: almost 7MB/s
- CPU temperature: about 42°C
- System load: ~2
- Power draw: 2.6W, with short spikes to 2.7W
Cubieboard 2 @ 1.3GHz
- Download speed via Samba: almost 7MB/s in average, oscillating between 6.3 and 7.5MB/s
- CPU temperature: about 42°C
- System load: ~2
- Power draw: average 3.4W, ranging from 3.3 to 3.5W
So, the only area where raspi3 is superior to cubie2 is the power draw, otherwise I would have expected way better performance.
Interesting to note, the transfer speed via samba was the same on the raspi3 at the default frequency of 1.2GHz (no benefit from overclocking whatsoever, if not maybe increased oscillations in speed with the same average value), while cubie2 seriously improved after I overclocked back then.
This might indicate a saturation of the USB bus, where the ethernet adapter resides in the raspberry pi 3, which might be the case since the system load of 2 means the 4 cores of the raspberry pi 3 are loaded half as much as the 2 cores on the cubieboard 2, so they could be waiting for the bus to free itself.
Investigating further, I ran
vmstat 3
on both the boards during the transfer… and averages were as follows:
- Cubieboard 2: user 7%, system 52%, idle 39%, waiting 2%
- Raspberry Pi 3: user 2%, system 28%, idle 55%, waiting 15%
I think it’s quite clear at this point that while the cubieboard 2 is crunching during that time (the idle should be due to one of the two cores not being optimized), the raspberry pi 3 is waiting on the bus to free itself before sending in other data (the higher idle also must be due to the 4 cores not being all used for the task, mostly 2 of which just don’t do anything at all).
I spent about half to buy the raspberry pi 3 than what I paid for the cubieboard 2 back then, but after so much time it’s not surprising; what is surprising is that the everyday performance appears to be the same 🙁
At this point I will probably keep the cubieboard 2, because it’s already configured as I want it (it’s got more amenities to it than just the NAS server based on Samba) and the different power draw would save me only about 2€ per year on the raspberry pi 3, so no point in upgrading.
UPDATE:
It’s been a couple months since i wrote this article, and for the last month, maybe more, I’ve been actually using the raspi3 as server (and have sold the cubie2 which wasn’t useful anymore).
I noticed that, on the long run, the NAS transfer speed didn’t keep up on the cubieboard after the uptime went, well, up 🙂 It got down to about 2MB/s, with spikes of 5MB/s, maybe less, but never quite reached the 7MB/s average which I got for the tests. No idea what caused this performance drop, but it was a fact: as days went by, the transfer speed was not on par, but far less.
The raspi3 on the other side looks more reliable, its uptime is 40 days as I write, and it still is right below the 7MB/s mark.