FriendlyARM NanoPi NEO Board Benchmarks

We’ve already seen how to setup NanoPi NEO with Ubuntu Core, and while it’s mostly designed as an IoT node, for example to control relays over Ethernet or the Internet, I’ve still decided to see how it would perform under load by running Phoronix benchmarks, and then network and storage (micro SD card provided by FriendlyARM). It’s a small board, so we should expect it to heat a lot under load, especially it does not come with an heatsink by default. Also bear in mind that performance may dramatically change depending on the software implementation, and for the test, I’m using the company’s Ubuntu Core firmware.

Before start the benchmark, I noticed that QTe-Demo was running in the background, probably because it was used on their other board with video output or LCD. but it’s taking some CPU usage, and is absolutely not needed here.

To disable it, edit /etc/rc.local, and comment out one line as follows:

I also planned to install RPi-Monitor, which is very easy to install in armbian, but I could not find a quick way for the Ubuntu core image, so I skipped it for now, instead manually checking the temperature.

Let’s install Phoronix Test Suite:

and run the benchmark against Orange Pi, Banana Pi, Raspberry Pi, etc… boards results.

Since it will take a while (4 to 5 hours) checking the terminal output while the benchmark is running may be informative:

Phoronix will run the same test several times, and in theory, every iteration of the test should have roughly the same results, but in practice, modern processors do overheat, and either reduce frequency or cut the number of cores to keep the temperature below the (safe) junction temperature. The results here don’t look good, because they become slower overtime. A temperature check with an IR thermometer after one hour or so, shows the CPU is getting really hot.
NanoPi_NEO_CPU_TemperatureWe can also verify this in the command line by reading one of the temperature sensor:

It’s hot, and the temperature tops at 80 C, and sometimes drops down to 76 C, before getting back to 80C, so the system is clearly throlling and the final results made that clear (ARMv7 rev 5 is NanoPi NEO without heatsink). Please also note that all 6 boards included below are using the same governor settings (interactive or ondemand). However, NaniPi NEO’s Ubuntu core Linux kernel is configured to run the RAM at the lower frequency to either decrease power consumption or heat generation.

Click to Enlarge
Click to Enlarge

John the Ripper is a multi-threaded password cracker, and in theory NaniPi NEO should have about the same performance as Orange Pi One, but there’s clearly a massive drop in performance.

Click to Enlarge
Click to Enlarge

Same thing for single threaded FLAC audio encoding, where NanoPi NEO is almost 50% slower than Orange Pi One, and about the same as Raspberry Pi 2.

So let’s check what happens is we had an heatsink. I glued the largish heatsink (for that board) by putting thermal paste on Allwinner H3 and the Samsung DDR3 SDRAM chip. It is not centered on the board because the Ethernet jack pins prevent this. You could add some thermal pads to work around this.


So let’s start again phoronix-test-suite to see if this improves anything:

Terminal output for the first benchmark:

We can see the results are both higher, and more stable, so that’s a good sign.

The heatsink temperature is about 54 C after around one or two hours.

NanoPi_NEO_Heatsink_TemperatureBut the CPU temperature is still high, and topping at 80 C from time to time:

Nevertheless the final results are way better. I repeated the test with heatsink twice to some issue with uploading the results the first time…

Click to Enlarge
Click to Enlarge

FLAC audio encoding is now just as good as on Orange Pi One.

Click to Enlarge
Click to Enlarge

John the Ripper is still a bit lower on NanoPi NEO, which could either be because of RAM clock or overheating despite the heatsink. The multi-threaded performance is still better than on Raspberry Pi 2 however.

So if you want to want NanoPi NEO to control some relays, you probably don’t need to care at all about this, but if you plan to use it as part as a cluster or build farm, you’d have to consider using a heatsink and possibly a fan to get optimal performance, as well as make sure the board does not die prematurely…

Let’s switch to Ethernet performance, but running iperf server on the board:

and running iperf client on a computer running Ubuntu 14.04 to test dual duplex performance:

So the download speed is all good at 93.8 Mbps, but the upload speed is not quite up to the task at 25.8 Mbps. Remember that a dual duplex test is a worse case scenario with heavy traffic going in both directions at the same, and it does not mean upload speed is limited to 25 Mbps in more typical scenarios.

NanoPi NEO does not come with any storage, and you can use any micro SD card you want, but FriendlyARM sells and recommend Sandisk Ultra 8GB SD micro card,  so it would interesting to see how the one they’ve sent me performs.

For that purpose I’ve installed iozone to test the micro SD card performance. You’ll need to edit /etc/apt/source.list to add multiverse at the end of the first two lines, and then:

I’ve run iozone3 with armbian community command line options, so that it can be compared to other SD cards:

So it’s not quite the fastest around, especially in terms of random write for some files, and if you want a board that boot very fast (i.e. faster than the 10 seconds boot I got), and your application is I/O depend you may want to get something better like Samsung EVO 32GB.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX RK3588 mini-ITX motherboard
Notify of
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
7 years ago

Something on Github changed and my old script that was used with Orange Pis to install RPi-Monitor didn’t work any more. New version should work except of interpreting VDD_CPUX value (since script.bin can not be parsed with FA’s OS image): The following has to be added to /etc/fstab to mount the FAT partition where script.bin is located: /dev/mmcblk0p1 /boot vfat rw,noatime,errors=continue 0 0 1 /dev/mmcblk0p1 /boot vfat rw,noatime,errors=continue 0 0 But as already said: converting script.bin to a fex file using bin2fex does not work for whatever reasons. Grabbing their fex file from Github and converting it to /boot/script.bin… Read more »

7 years ago

@Jean-Luc Aufranc (CNXSoft) The heatsink comes with a 2 mm thick heat pad and can be mounted safely providing enough pressure to the heat pad to be operated in environments where heavy vibrations might occur. For my consumption tests I also had to disable the QtE-Demo since it’s useless anyway on a headless device and increases consumption a lot. The good news: With new Armbian ‘IoT settings’ consumption as low as 800 mW when idling around while having Ethernet active/ready and also all 4 USB ports being active/ready. The most energy efficient RPi in this mode (USB/Ethernet active and Ethernet… Read more »

7 years ago

Hmm… in your link idle consumption of RPi B is listed as 380mA which would translate to 1900mW if stable 5V can be assumed (since using my AXP209 measurement setup I monitor voltage fluctuations based on load too I never trust in mA ‘consumption’ numbers again 😉

All RPi numbers I got are backed by various more serious test setups found on the net and 1.9W vs. 1.2W for RPi B vs. B+ (just due to replacing the LDO regulators with better circuitry) is what’s to be expected:

Khadas VIM4 SBC