In 2014 I watched new single-board-computers enter the market. Since I am very fond of the Raspberry Pi project and I am using RPi for quite some time, I am now curious about the differences. I am currently looking for a suitable platform to be used as a base station for my home automation project. I wouldn't call this a server since this term is in most cases used for different hardware. In this context reliability, cost of operation running 24/7, ease of use are the most important factors for me. I am going to write a series of blog posts on benchmarks of the different models in this context.
Raspberry Pi B+ replaced the B model mid 2014. It offers four USB ports, a micro sd card slot and lower power consumption. I has a 700MHz BCM2835 ARM processor and 512MB SDRAM.
To install Archlinux on RPi I followed this perfect set of instructions for installation:
Then I booted the RPi B+ from that sdcard and now I use my laptop to ssh into the RPi:
$ ssh root@alarmpi The authenticity of host 'alarmpi (192.168.1.214)' can't be established. ECDSA key fingerprint is db:8c:db:b9:bd:cc:b0:cb:de:a2:c8:a0:2f:73:17:e4. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'alarmpi,192.168.1.214' (ECDSA) to the list of known hosts. root@alarmpi's password: Welcome to Arch Linux ARM Website: http://archlinuxarm.org Forum: http://archlinuxarm.org/forum IRC: #archlinux-arm on irc.Freenode.net
Sync and update:
$ pacman -Syyu $ pacman-db-upgrade
An optional step is to configure a suitable hostname to replace "alamrpi" for your new RPi based docker machine. I choose "kujira04" for that.
$ hostnamectl set-hostname kujira04
And now the installation of the docker package itself:
$ pacman -S docker systemd
Enable docker to run as a service:
$ systemctl enable docker.service
Done! Now we will reboot the RPi and check if everything worked as expected:
$ shutdown -r now
Check that the docker service is running:
$ ifconfig ... docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 172.17.42.1 netmask 255.255.0.0 broadcast 0.0.0.0 ether 56:84:7a:fe:97:99 txqueuelen 0 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ...
I am now able to use arm specific docker containers (as a convention they are usually prefixed with "rpi-"). In this example I load my "rpi-bench" container from docker hub and run it.
$ docker run -t finklabs/rpi-bench 180.3751s 1.6125Mb/sec 374.174 MiB/s
That's it. Here my benchmark results for the Raspberry Pi B+ model:
Board | Raspberry Pi B+ model |
---|---|
CPU (lower is better) | 180.4 sec |
FileIO | 1.6 MB/sec |
Memory | 374.2 MiB/sec |
Wattage | 1.41 Watt |
If you are interested in this work let me know.
Parts used:
Resources
Have fun!
Mark