A Performance Evaluation of Linux Containers On Similar ARM Based
A Performance Evaluation of Linux Containers On Similar ARM Based
Abstract
Internet of Things (IoT) is evolving and there will be more than 50 billion connected things in the near future.
Security is of prime importance when so many devices are connected and it is an active research topic among
others, in the IoT world. We need innovative ways to deploy, manage and update the software installed
on these devices in order to keep the devices updated with security fixes delivered on time. Containers
can help in achieving a new mechanism to deploy and apply updates to these IoT devices, which many
System on a chip (SoC) vendors and other operating system vendors handling IoT devices are considering.
There are many ARM[1] based development boards available commercially off-the-shelf offering various
hardware specifications. In this paper we will use Linux containers on ARM based development boards such
as Dragonboard 410c, Orange Pi PC2, Pine A64 and Raspberry Pi 3 model B which are commonly used in IoT
development, in order to benchmark and measure their performance at various levels. The ARM development
boards are carefully chosen in order to have similar hardware specification and running a common Operating
System namely Debian[2] with Linux kernel 4.13 and above. The LXC environment used across all the boards
is based on Debian Stretch (9.0).
Keywords: internet of things, iot, containers, linux containers, lxc, security, benchmark, SoC, ARM,
measurement, commercial off-the-shelf
were used throughout the experiments to evaluate ware that are identical or close to identical to bring
performance. Docker is a Linux containerization a fair comparison rather than to compare apples with
technology that emerged from LXC in the past and oranges.
later moved to its own implementation methodology. In the recent years, container technology has be-
Yet, both Docker and LXC use the same underly- come popular in GNU/Linux operating systems with
ing mechanisms offered by Linux Kernel in order to Linux Containers (LXC). We will use LXC as our
implement containerization, hence Docker could be container technology.
considered an equivalent and similar technology to
LXC. Thorough analysis of different parameters such 3.1. Device Configuration
as CPU utilization, power efficiency, system load,
The following similar ARM based development
CoAP response times, etc. were made. The IoT de-
boards are chosen for this paper:
vices used in these experiments were same and were
running Docker based containers to measure other
1) Dragonboard 410c [12]
system and network parameters.
In the paper, “A Performance Evaluation of 2) Orange Pi PC2 [13]
Container Technologies on Internet of Things 3) Pine A64 [14]
Devices”[10] the performance evaluation was done 4) Raspberry Pi 3 Model B [15]
on a single device namely the Raspberry Pi 2[11]
both on bare metal and within container environ- These boards are popular among IoT developers
ment. This paper also used Docker as the con- and are also affordable with similar hardware specifi-
tainerization technology and analysed benchmark re- cation. The detailed specification of these boards are
sults for CPU, Network I/O, Memory, Disk I/O and given in Table 1. As seen in Table 1, all these boards
Apache server. It used tools such as sysbench[18], have a quad core ARM Cortex A53 CPU which has a
dd[20] and apache benchmark (ab) tool to conduct 64-bit architecture and uses ARMv8 instruction set,
the benchmarks. It concludes with a note on negli- though these CPUs come from different SoC ven-
gible impact seen on employing containerization on dors such as Qualcomm, Broadcom and Allwinner.
Raspberry Pi 2 board that was considered. The CPUs have the same clock speeds at 1.2 GHz.
Similarly the RAM size is same across the boards at
1GB. In the benchmark measurements Ethernet was
3. Proposed Model used for networking which was connected to a Gi-
gabit LAN network. For boards which did not have
Throughout this paper care has been taken to run Ethernet, QuantumZERO QZ-AD02 USB 3.0 Giga-
performance measurements on hardware and soft- bit Ethernet Adapters[16] were used.
1020
3rd International Conference on Internet of Things & Connected Technologies (ICIoTCT), 2018
1021
3rd International Conference on Internet of Things & Connected Technologies (ICIoTCT), 2018
15.2 seconds. The detailed time taken for CPU per- and within LXC run of the memory performance
formance benchmark completion is listed in Table 3 benchmark, in the order of 50+ seconds.
for each development board.
5.3. Network Performance Analysis
5.2. Memory Performance Analysis
The Network performance benchmark was done
Memory performance analysis was done with the
using netperf tool which is capable of perform-
help of sysbench in order to measure the memory
ing various network related benchmarking both with
operations speed. All the development boards have
TCP and UDP protocols. As listed in Table 1, not all
1GB of RAM as listed in Table 1. Each mem-
the development boards discussed in this paper has
ory block size used in the performance benchmark
an onboard Ethernet interface, which is also true for
measurement is 1 KiB. Write operations were per-
the WiFi interface. Also, a closer look shows Rasp-
formed by sysbench taking the entire 1GB of avail-
berry Pi 3 Model B has an onboard Ethernet interface
able memory into account. The sysbench com-
that supports 10/100 and other boards which have on-
mand was started with 4 worker threads. In Fig-
board Ethernet interface supports 10/100/1000 band-
ure 3, we can see that Pine A64 development board
width. For Dragonboard 410c which does not have
took the longest time to execute the memory bench-
an onboard Ethernet we have provided an USB Eth-
mark,whereas Dragonboard 410c took the least time
ernet dongle to get it connected to the network. In the
for execution. The details of total time taken for ex-
case of Pine A64, we could not make the onboard
ecution is given in Table 4.
Ethernet working, hence we added a USB Ethernet
dongle and used the same for running the benchmark.
Table 4: Memory Performance Benchmark Completion Time QuantumZERO QZ-AD02 USB 3.0 Gigabit Ethernet
in seconds
Board Bare Metal Inside LXC Adapters[16] were used in both the cases. The LXC
Dragonboard 410c 35.52 35.05 containers running inside the development boards are
Orange Pi PC2 36.13 36.13 connected via a virtual bridge formed with the help
Pine A64 86.80 140.07 of libvirtd[21].
Raspberry Pi 3 Model B 63.94 64.48 Netperf requires a netserver service running on a
different machine to which the netperf client sends
Also it is worth noting that there is considerable data packets and measures the throughput of the net-
difference in execution time of Pine A64 bare metal work. The netserver service was run on a laptop
1022
3rd International Conference on Internet of Things & Connected Technologies (ICIoTCT), 2018
1023
3rd International Conference on Internet of Things & Connected Technologies (ICIoTCT), 2018
IoT devices[23] classified as class0, class1, class2. Clustered Devices at the Network Edge”, IEEE INTER-
In such non-constrained devices it is important to NET OF THINGS JOURNAL, VOL. 4, NO. 4, pp. 1019-
analyse the application protocols and measure the 1030, 2017.
[9] Docker. https://www.docker.com/; 2018.
performance of applications that will be deployed in [10] Morabito Roberto, “A Performance Evaluation of Con-
real world. Future work will focus on evaluating the tainer Technologies on Internet of Things Devices”, IEEE
performance of constrained IoT devices and applica- Access, VOL. 5, pp. 8835-8850, 2017.
tions run as service in individual containers. [11] Raspberry Pi 2 http://www.raspberrypi.org/
products/raspberry-pi-2-model-b/ 2018.
[12] Dragonboard 410c https://www.qualcomm.com/
products/dragonboard-410c 2018.
7. Conclusions [13] Orange Pi PC2 http://www.orangepi.org/
orangepipc2/ 2018.
The principal aim of this paper was to evaluate [14] Pine A64 https://www.pine64.org/?page_id=1194
the performance of few of the popular commercial 2018.
off-the-shelf development boards and look for any [15] Raspberry Pi 3 Model B https://www.raspberrypi.
org/products/raspberry-pi-3-model-b/ 2018.
performance degradation in terms of employing con- [16] QuantumZERO QZ-AD02 USB 3.0 Gigabit Ethernet
tainers on the development boards. The results that Adapter. https://goo.gl/ptazT8, 2018.
were shown and discussed clearly brought out the [17] Linux for ARM development boards. https://www.
fact that, employing Linux containers does not de- armbian.com/; 2018.
[18] SysBench, a modular, cross-platform and multi-threaded
grade the performance of the development boards
benchmark tool. https://github.com/akopytov/
in any way and provides equivalent bare metal per- sysbench; 2018.
formances. Hence Linux containers can be used to [19] Netperf, is a benchmark that can be used to measure
deliver and deploy software on IoT devices in order the performance of many different types of networking.
to provide security and ensure roll back possibilities https://hewlettpackard.github.io/netperf/;
2018.
during software updates, as discussed in the start of
[20] dd, UNIX command line tool to convert and copy files.
this paper. This paper will also stand as a piece of https://en.wikipedia.org/wiki/Dd_(Unix); 2018.
evidence to support choosing the right development [21] Virtualization APIs. https://libvirt.org/; 2018.
boards based on the results discussed for researchers [22] Category 6 cable, commonly referred to as Cat 6. https:
and start-up companies who are involved in IoT. //en.wikipedia.org/wiki/Category_6_cable;
2018.
[23] C. Bormann, M. Ersue, A. Keranen RFC7228, Terminol-
REFERENCES ogy for Constrained-Node Networks Abstract 2014.