In 2014 I watched new single-board-computers enter the market. I am very fond of the Raspberry Pi project and I am using RPi for quite some time now as you can see from my previous posts on my website. Now I am curious about the differences to Beaglebone Black. I am currently looking for 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.

BeagleBone Black is a $45 ARM Cortex-A8 community-supported development platform. With 4GB of eMMC flash on-board, processor speed increase to 1GHz, and improved power consumption in comparison to earlier beaglebone boards the BBB has much to offer. BBB has 512MB DDR3 ram. Unboxing the board and the enclosure both make a perfected impression on me. Assembly of the enclosure is very easy since the board is mounted using 4 little screws. The rock solid enclosure has openings that allow access to buttons and GPIO pins.

During the last two weeks I got convinced by the excellent quality of the BBB board and enclosure. I am particularity fond of the Beaglebone since it is open hardware (in the sense of open source hardware!).

After an initial little hiccup during installation of Debian Linux I decided to use Archlinux.

I followed this perfect set of instructions for installation:

http://archlinuxarm.org/platforms/armv7/ti/beaglebone-black

The instructions are organized into two sections:

  • creating a micro sd card and booting the BBB from it
  • installing Archlinux onto eMMC

After that you have to sync and update:

$ pacman -Syyu
$ pacman-db-upgrade

An optional step is to configure a suitable hostname for your new BBB based docker machine. I choose "kujira02" for that.

$ hostnamectl set-hostname kujira02

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 BBB 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
        inet6 fe80::5484:7aff:fefe:9799  prefixlen 64  scopeid 0x20<link>
        ether 56:84:7a:fe:97:99  txqueuelen 0  (Ethernet)
        RX packets 282177  bytes 14504931 (13.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 637920  bytes 931009075 (887.8 MiB)
        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 "armhf-"). In this example I start my "armhf-bench" container from docker hub and use it.

$ docker run -t -i finklabs/armhf-bench
105.2116s
3.1723Mb/sec
216.119 MiB/s

That's it. Here my benchmark results for the Beaglebone Black:

Board BBB
CPU* 105.2 sec
FileIO 3.17 MB/sec
MEM 216.1 MiB/sec
Wattage 2.12 Watt

* for the CPU measurement: lower is better

If you are interested in this work let me know.

Best, Mark

Resources

  • http://www.oshwa.org/
  • http://beagleboard.org/
  • http://archlinuxarm.org/platforms/armv7/ti/beaglebone-black
  • Beaglebone Black
  • Enclosure for Beaglebone Black
  • IBM Docker benchmarking research paper

© 2022. All Rights Reserved.

Ghostium Theme

Proudly published using buccaneer static site generator