Piotr Grzesik
Silesian University of Technology
Edge computing is a computing paradigm that brings the data processing and storage closer to a place where it is needed. It allows to reduce the volume of data that needs to be send over the Internet, allows to improve reaction time to the changing state of the system and improves resilience and allows for data loss prevention where Internet connection is not reliable or not available at all most of the time.
Jetson Nano
Source: https://www.nvidia.com/
Raspberry Pi 4
Source: https://www.raspberrypi.org/
Beaglebone Black
Source: https://beagleboard.org/
Coral Dev Board
Source: https://coral.ai/
The aim of this research is to evaluate one of the stream analytics engines, Apache Edgent, in the context of IoT-based stream processing application, running on low-cost, constrained edge device processing data from air quality sensors.
In the paper, Fatos Xhafa et al., describes challenges of processing IoT data streams using edge computing paradigm, highlighting use case for car data. The authors also describe real infrastructure used for the experiments, based on Raspberry Pi device and Node-Red server and come to conclusion that a single Raspberry Pi is not a suitable hardware for processing the experimental workload.
Eduard Renart et al. in his research proposed and evaluated an edge-based programming framework for stream processing in smart city environment. That framework detects and exploits data patterns to improve performance of stream processing performed on edge devices. For selected workflows, the proposed solution offered latency lower up to 78% and computational time required to process stream of elements was up to 56% lower.
Lin Yan et al. in his research describes intelligent hydrological architecture, based on edge computing paradigm. The authors propose a solution for a platform, that performs real-time data preprocessing, data analysis, data monitoring and handles data persistence. As edge devices, authors selected virtual machines with Intel (R) Core (TM) i5-7200U CPU. The authors conclude the paper with four experiments, highlighting that solution based on Apache Edgent can be used for real-time filtering of collected data and performing data analysis, which can reduce data transmission and improve efficiency of data analysis in hydrological applications.
6LoWPAN-based sensor network, collecting measurements such as air quality and weather condition metrics, sending them to a message broker
Edge device, that serves both as a message broker and analytical engine
Cloud-based service for further data processing
During tests, sensor readings generator was used to allow for running tests multiple times in a short span of time
Example reading used for the performance experiments
Data stream has a form of points sent from sensors, where each data point consists of air quality metrics in form of NO2 and dust particle size metrics – PM2.5 and PM10, in form of a JSON message. In addition, it also stores information about sensor and location.
During tests, a separate data generator was used, running on a separate Raspberry Pi in local area network
Tests were conducted for the following frequencies of data generation: 5 Hz, 20 Hz, 50 Hz, 100 Hz and 500 Hz
For each frequency, the tests were ran for 60 seconds and average percentage load per CPU core as well as average memory consumption were recorded.
To measure the CPU load, the application called cpustat was used. It was configured to record CPU utilization every second while the simulation was running.
Memory usage readings were obtained using vmstat application, configured to record readings every second.
Average CPU load results obtained during the performance experiments
Average memory usage obtained during the performance experiments
The average CPU load heavily depends on the volume of the incoming data. The application is able to process 500 readings per second in real-time, recording an average 54% of CPU load.
When trying to process more than 500 readings per second, application was no longer able to process all incoming readings in real-time. While there were observed examples where the application supported processing 550 readings per second in real-time, it was not repeatable in every run. Therefore, it was determined that tested setup is able to handle processing of up to 500 readings per second.
Memory usage results were vastly different, it was determined that there’s very little change in memory consumption between 5 Hz and 500 Hz scenario, with highest average memory consumption of 689 MB.
D.-H. Kang et al., “Room Temperature Control and Fire Alarm/Suppression IoT
Service Using MQTT on AWS,” Feb. 2017, pp. 1–5, doi: 10.1109/PlatCon.2017.7883724.
N. Jaya and Md. F. Hossain, “A Prototype Air Flow Control System for Home
Automation Using MQTT Over Websocket in AWS IoT Core,” Oct. 2018, pp. 111–1116, doi: 10.1109/CyberC.2018.00032.
A. George, H. Dhanasekaran, J. P. Chittiappa, L. A. Challagundla, S. S. Nikkam, and
O. Abuzaghleh, “Internet of Things in health care using fog computing,” in 2018 IEEE Long Island Systems, Applications and Technology Conference (LISAT), May 2018, pp. 1–6, doi: 10.1109/LISAT.2018.8378012.
J. M. Talavera et al., “Review of IoT applications in agro-industrial and environmental fields,” Computers and Electronics in Agriculture, vol. 142, pp. 283–297, Nov. 2017, doi: 10.1016/j.compag.2017.09.015.
W. Shi, G. Pallis, and Z. Xu, “Edge Computing” Proceedings of the IEEE, vol. 107, no. 8, pp. 1474–1481, Aug. 2019, doi: 10.1109/JPROC.2019.2928287.
S. Yi, Z. Hao, Z. Qin, and Q. Li, “Fog Computing: Platform and Applications,” in
2015 Third IEEE Workshop on Hot Topics in Web Systems and Technologies
(HotWeb), Nov. 2015, pp. 73–78, doi: 10.1109/HotWeb.2015.22.
“Edgent.” http://edgent.incubator.apache.org/ (accessed Apr. 22, 2020).
Fatos Xhafa, Burak Kilic, Paul Krause, “Evaluation of IoT stream processing at edge computing layer for semantic data enrichment” Future Generation Computer Systems, Volume 105, Pages 730-736, 2020
E. G. Renart, J. Diaz-Montes, and M. Parashar, “Data-Driven Stream Processing at the Edge,” in 2017 IEEE 1st International Conference on Fog and Edge Computing (ICFEC), May 2017
M. D. de Assuncao, A. da S. Veith, and R. Buyya, "Distributed Data Stream Processing and Edge Computing: A Survey on Resource Elasticity and Future Directions"
A. Bouslama, Y. Laaziz, A. Tali, and E. Mohamed, “AWS and IoT for Real-time
Remote Medical Monitoring,” International Journal of Intelligent Enterprise, vol. 6, pp. 293–310, Apr. 2019, doi: 10.1504/IJIE.2019.10022704
L. Greco, P. Ritrovato, and F. Xhafa, “An edge-stream computing infrastructure for real-time analysis of wearable sensors data,” Future Generation Computer Systems, vol. 93, Nov. 2018, doi: 10.1016/j.future.2018.10.058
L. Yan, D. Wan, Q. Zhao, and Y. Yang, “Research on Implementation Methods of Edge Computing in Intelligent Hydrology,”
Brandon Swink, “Sensor Data Analytics Acceleration with Apache Edgent”,
http://site.ieee.org/dallas sensors/files/2016/09/EdgeAnalyticsMeetup.Edgent.Swink_.pdf (accessed May 30, 2020).
“Welcome to The Apache Software Foundation!” https://www.apache.org/ (accessed Apr. 22, 2020).
M. B. Yassein, M. Q. Shatnawi, S. Aljwarneh, and R. Al-Hatmi, “Internet of Things: Survey and open issues of MQTT protocol,” in 2017 International Conference on Engineering MIS (ICEMIS)
R. Light, “Mosquitto: server and client implementation of the MQTT protocol,”
Journal of Open Source Software, vol. 2, no. 13, p. 265, May 2017, doi:
10.21105/joss.00265.
“Raspberry Pi 4 Model B specifications – Raspberry Pi.” https://www.raspberrypi.org (accessed Apr. 22, 2020).
“cpustat”, http://manpages.ubuntu.com/manpages/bionic/man8/cpustat.8.html
(accessed May 30, 2020)
“vmstat”, http://manpages.ubuntu.com/manpages/bionic/man8/vmstat.8.html (accessed May 30, 2020)