The Benchmark Results
Let’s jump right into the benchmark results. Note that in addition to the Soekris and the Raspberry Pi, I have also included a dual-core mid-2011 i5-based and a quad-core late-2012 i7-based Apple Mac Mini. This is to allow comparison to a PC-class machine (which can be up to 14x faster than the Pi)
|Machine||CPU||OS||List Price||Time (seconds) (lower is better)||Relative Speed (higher is better)||$/Compute (lower is better)|
|Raspberry Pi||ARMv6 rev 7 (Raspberry Pi) 0.7GHz||Raspian (Debian 7.0)||$35||573.52||1.00||$35|
|Soekris NET6501||Intel Atom E680 1.6 Ghz||FreeBSD 9.1 32-bit||$470||338.40||1.69||$277|
|Mid-2011 Mini||Intel Core i5 2.5 GHz (i5-2520M)||Mac OS X 10.8.5||$800||44.10||13.00||$62|
|Late-2012 Mini||Intel Core i7 2.3 GHz (i7-3615QM)||Mac OS X 10.9||$800||39.40||14.56||$55|
The Raspberry Pi is an excellent choice for single-threaded applications that have minimal RAM and disk requirements and modest network demands. In other words, it makes an excellent home firewall. Note that the Raspberry Pi’s ethernet interface is limited to 100Mbps (i.e. it is not gigabit-capable). This is a shortcoming of the design decision to place the ethernet interface on the USB 2.0 bus, whose maximum bandwidth (480 Mbps) is not enough to sustain a gigabit ethernet interface. That being said, I am not aware of a home Internet connection that exceeds 100Mbps.
The Soekris is a better solution for more complex (i.e. business) firewalls. It has four built-in gigabit ethernet ports which allow for greater networking options.
For CPU-intensive applications, you’re better off with a PC-class system rather than an embedded system such as the Soekris or the Raspberry Pi.
The benchmark is an ssh-keygen command run on a candidate file:
time ssh-keygen -T moduli-2048 -f moduli-2048.candidates
The candidate file can be downloaded here. I chose ssh-keygen because it’s CPU-bound, has a small memory footprint, doesn’t use floating point, and is fairly ubiquitous.
- The benchmark is single-threaded. The Soekris is a two-core machine, but one core sits completely idle during the benchmark, unfairly penalizing the Soekris. (and super-penalizing the Intel i7, which has 4 cores)
- The benchmark does not take into account the larger amount of RAM in the Soekris (2GB versus the Raspberry Pi’s 512MB). For larger-footprint workloads, the Soekris would pull further ahead.
- The benchmark does not take into account floating point performance.
- The benchmark does not take into account differences in operating systems (FreeBSD vs. Linux) or architectures (Intel i386 vs. ARM).
- The benchmark does not take into account disk speed
- The benchmark does not take into account network throughput
- The benchmark does not take into account the amount of electrical power required to run these machines. The Soekris runs so cool that it doesn’t require a fan, and the Raspberry Pi runs even cooler and doesn’t require a heatsink.
Once again, the typical use-case for these embedded systems is a home firewall, which is single-threaded, has a small memory footprint (the kernel plus a handful of daemons), requires no floating point, and doesn’t care which OS/architecture it’s running.