paper-lowrate-iot/2019-ICA3PP.org
2021-01-31 18:39:22 +01:00

60 KiB
Raw Permalink Blame History

Estimating the end-to-end energy consumption of low-bandwidth IoT applications for WiFi devices

Introduction

In 2018, Information and Communication Technology (ICT) was estimated to absorb around 3% of the global energy consumption \cite{ShiftProject}. This consumption is estimated to grow at a rate of 9% per year \cite{ShiftProject}. This alarming growth is explained by the fast emergence of numerous applications and new ICT devices. These devices supply services for smart building, smart factories and smart cities for instance. Through connected sensors producing data, actuators interacting with their environment and communication means all being parts of the Internet of Things (IoT) they provide optimized decisions.

This increase in number of devices implies an increase in the energy needed to manufacture and utilize them. Yet, the overall energy bill of IoT also comprises indirect costs, as it relies on computing and networking infrastructures that consume energy to enable smart services. Indeed, IoT devices communicate with Cloud computing infrastructures to store, analyze and share their data.

In February 2019, a report by Cisco stated that ``IoT connections will represent more than half (14.6 billion) of all global connected devices and connections (28.5 billion) by 2022" \cite{Cisco2019}. This will represent more than 6% of global IP traffic in 2022, against 3% in 2017 \cite{Cisco2019}. This increasing impact of IoT devices on Internet connections induces a growing weight on ICT energy consumption.

The energy consumption of IoT devices themselves is only the top of the iceberg: their use induce energy costs in communication and cloud infrastructures. In this paper, we estimate the overall energy consumption of an IoT device environment by combining simulations and real measurements. We focus on a given application with low bandwidth requirement and we evaluate its overall energy consumption: from the device, through telecommunication networks, and up to the Cloud data center hosting the application. From this analysis, we derive an end-to-end energy consumption model that can be used to assess the consumption of other IoT devices.

While some IoT devices produce a lot of data, like smart vehicles for instance, many others generate only a small amount of data, like smart meters. However, the scale matters here: many small devices can end up producing big data volumes. As an example, according to a report published by Sandvine in October 2018, the Google Nest Thermostat is the most significant IoT device in terms of worldwide connections: it represents 0.16% of all connections, ranging 55th on the list of connections \cite{Sandvine2018}. As a comparison, the voice assistants Alexa and Siri are respectively 97th and 102nd with 0.05% of all connections \cite{Sandvine2018}. This example highlights the growing importance of low-bandwidth IoT applications on Internet infrastructures, and consequently on their energy consumption.

In this paper, we focus on IoT devices for low-bandwidth applications such as smart meters or smart sensors. These devices send few data periodically to cloud servers, either to store them or to get computing power and take decisions. This is a first step towards a comprehensive characterization of the global IoT energy footprint. While few studies address the energy consumption of high-bandwidth IoT applications \cite{li_endend_2018}, to the best of our knowledge, none of them targets low-bandwidth applications, despite their growing importance on the Internet infrastructures.

Low-bandwidth IoT applications, such as the Nest Thermostat, often relies on sensors powered by batteries. For such sensors, reducing their energy consumption is a critical target. Yet, we argue that end-to-end energy models are required to estimate the overall impact of IoT devices, and to understand how to reduce their complete energy consumption. Without such models, one could optimize the consumption of on-battery devices at a heavier cost for cloud servers and networking infrastructures, resulting on an higher overall energy consumption. Using end-to-end models could prevent these unwanted effects.

Our contributions include:

  • a characterization of low-bandwidth IoT applications;
  • an analysis of the energy consumption of a low-bandwidth IoT application including the energy consumption of the WiFi IoT device and the consumption induced by its utilization on the Cloud and telecommunication infrastructures;
  • an end-to-end energy model for low-bandwidth IoT applications relying on WiFi devices.

The paper is organized as follows. Section \ref{sec:sota} presents the state of the art. The low-bandwidth IoT application is characterized in Section \ref{sec:usec}, and details on its architecture are provided in Section \ref{sec:model}. Section \ref{sec:eval} provides our experimental results combining real measurements and simulations. Section \ref{sec:discuss} discusses the key findings an the end-to-end energy model. Finally, Section \ref{sec:cl} concludes this work and presents future work.

Related Work

Energy consumption of IoT devices

The multiplication of smart devices and smart applications pushes the limits of Internet: IoT is now used everywhere for home automation, smart agriculture, e-health, smart cities, logistics, smart grids, smart buildings, etc. \cite{Wang2016,Ejaz2017,Minoli2017}. IoT devices are typically used to optimize processes and the envisioned application domains include the energy distribution and management. It can for instance help the energy management of product life-cycle \cite{Tao2016}. Yet, few studies address the impact of IoT itself on global energy consumption \cite{jalali_fog_2016,li_endend_2018} or CO2 emissions \cite{Sarkar2018}.

The underlying architecture of these smart applications usually includes sensing devices, cloud servers, user applications and telecommunication networks. Concerning the computing part, the cloud servers can either be located on Cloud data centers, on Fog infrastructures located at the network edge, or on home gateways \cite{Wang2016}. Various network technologies are employed by IoT devices to communicate with their nearby gateway; either wired networks with Ethernet or wireless networks: WiFi, Bluetooth, Near Field Communication (NFC), ZigBee, cellular network (like 3G, LTE, 4G), Low Power Wide Area Network (LPWAN), etc. \cite{Samie2016,Gray2015}. The chosen technology depends on the smart device characteristics and the targeted communication performance. The Google Nest Thermostat can for instance use WiFi, 802.15.4 and Bluetooth \cite{Nest}. In this paper, we focus on WiFi as it is broadly available and employed by IoT devices \cite{Samie2016,ns3-energywifi}.

Several works aim at reducing the energy consumption of the device transmission \cite{Andres2017} or improving the energy efficiency of the access network technologies \cite{Gray2015}. An extensive literature exists on increasing the lifetime of battery-based wireless sensor networks \cite{Wang2016}. Yet, IoT devices present more diversity than typical wireless sensors in terms of hardware characteristics, communication means and data production patterns.

Based on real measurements, previous studies have proposed energy models for IoT devices. Yet, these models are specific to a given kind of IoT device or a given transmission technology. Martinez et al. provide energy consumption measurements for wireless sensor networks using SIGFOX transmissions and employed for smart-parking systems \cite{Martinez2015}. Wu et al. implement an energy model for WiFi devices in the well-known ns3 network simulator \cite{ns3-energywifi}.

Energy consumption of network and cloud infrastructures

IoT architecture rely on telecommunication networks and Cloud infrastructures to provide services. The data produced by IoT devices are stored and exploited by servers located either in Cloud data centers or Fog edge sites. While studies exist on the energy consumption of network and cloud infrastructures in general \cite{Ehsan}, they do not consider the specific case of IoT devices. To the best of our knowledge, no study estimates the direct impact of IoT applications on the energy consumption of these infrastructures.

Most work focusing on energy consumption, Cloud architecture and IoT applications tries to answer the question: where to locate data processing in order to save energy \cite{jalali_fog_2016}, to reduce the CO2 impact \cite{Sarkar2018}, or to optimize renewable energy consumption \cite{li_endend_2018}.

In both cases, the network and cloud infrastructures, attributing the energy consumption to a given user or application is a challenging task. The complexity comes from the shared nature of these infrastructures: a given Ethernet port in the core of the network processes many packets coming from a high number of sources \cite{jalali_fog_2016}. Moreover, the employed equipment is not power proportional: servers and routers consume consequent amounts of energy while being idle \cite{mahadevan_power_2009,li_endend_2018}. The power consumed by a device is divided into two parts: a dynamic part that varies with traffic or amount of computation to process, and a static part that is constant and dissipated even while being idle \cite{Ehsan}. This static part implies that a consequent energy cost of running an application on a server is due to the device being simply powered on. Consequently, sharing these static energy costs among all the concerned users requires an end-to-end model \cite{li_endend_2018}.

In this paper, we focus on IoT devices using WiFi transmission and generating low data volumes. Our model, extracted from real measurements and simulations, can be adapted to other kinds of devices and transmission technologies.

Characterization of low-bandwidth IoT applications

In this section, we detail the characteristics of the considered IoT application. While the derived model is more generic, we focus on a given application to obtain a precise use-case with accurate power consumption measurements.

The Google Nest Thermostat relies on five sensors: temperature, humidity, near-field activity, far-field activity and ambient light \cite{Nest}. Periodical measurements, sent through wireless communications on the Internet, are stored on Google data centers and processed to learn the home inhabitants habits. The learned behavior is employed to automatically adjust the home temperature managed by heating and cooling systems.

Each IoT device senses periodically its environment. Then, it sends the produced data through WiFi (in our context) to its gateway or Access Point (AP). The AP is in charge of transmitting the data to the cloud using the Internet. Figure \ref{fig:IoTdev} illustrates this architecture. Several IoT devices can share the same AP in a home. We consider low-bandwidth applications where devices produces several network packets during each sensing period. The transmitting frequency can vary from one to several packet sent per minute \cite{Cisco2019}.

The IoT part is composed of an Access Point (AP), connected to several sensors using WIFI. In the system, the IoT part is considered as the part where the system data are created. In fact, the data life cycle start when the sensors records their respective local temperature at a frequency $f$ and the local timestamp. Then, these data are transmitted through the network along with an arbitrary sensor id of 128 bits. Finally, the AP is in charge to transmit the data to the cloud using the network part.

The network part is considered as the medium that link the IoT part to the cloud. It is composed of several network switches and router and it is considered to be a wired network.

We consider that the link between the AP and the Cloud is composed of several network switches and routers using Ethernet as shown in Figure \ref{fig:parts}. The number of routers on the path depends on the location of the server, either in a Cloud data center or in a Fog site at the edge of the network.

We assume that the server hosting the application data for the users belongs to a shared cloud facility with classical service level agreement (SLA). The facility provides redundant storage and computing means as virtual machines (VMs). A server can host several VMs at the same time.

In the following, we describe the experimental setup, the results and the end-to-end model. For all these steps, we decompose the overall IoT architecture into three parts: the IoT device part, the networking part and the cloud part, as displayed on Figure \ref{fig:parts}.

Experimental setup

In this section, we describe the experimental setup employed to acquire energy measurements for each of the three parts of our system model. The IoT and the network parts are modeled through simulations. The Cloud part is modeled using real servers connected to wattmeters. In this way, it is possible to evaluate the end-to-end energy consumption of the system.

IoT Part

In the first place, the IoT part is composed of several sensors connected to an Access Point (AP) which form a cell. This cell is studied using the ns3 network simulator. In the experimental scenario, we setup between 5 and 15 sensors connected to the AP using WiFi 5GHz 802.11n. The node are placed randomly in a rectangle of $400m^2$ around the AP which corresponds to a typical use case for a home environment. All the cell nodes employ the default WIFI energy model provided by ns3. The different energy values used by the energy model are provided in Table \ref{tab:params}. These parameters were extracted from previous work\cite{halperin_demystifying_nodate,li_endend_2018} On IEEE 802.11n. Besides, we suppose that the energy source of each nodes is not limited during the experiments. Thus each node can communicate until the end of all the simulations.

As a scenario, sensors send 192 bits packets to the AP composed of: \textbf{1)} A 128 bits sensors id \textbf{2)} A 32 bits integer representing the temperature \textbf{3)} An integer timestamp representing the temperature sensing date. They are stored as time series. The data are transmitted immediately at each sensing interval $I$ that we vary from 1s to 60s. Finally, the AP is in charge of relaying data to the cloud via the network part.

Network Part

The network part represents the a network section starting from the AP to the Cloud excluding the server. It is also modeled into ns3. We consider the server to be 9 hops away from the AP with a typical round-trip latency of 100ms from the AP to the server \cite{li_endend_2018}. Each node from the AP to the Cloud is a network switch with static and dynamic network energy consumption. The first 8 hops are edge switches and the last one is consider to be a core router as mentioned in \cite{jalali_fog_2016}. ECOFEN \cite{orgerie_ecofen:_2011} is used to model the energy consumption of the network part. ECOFEN is an ns3 network energy module dedicated to wired networks. It is based on an energy-per-bit and energy-per-packet model for the dynamic energy consumption \cite{sivaraman_profiling_2011,Serrano2015}, and it includes also a static energy consumption. The different values used to instantiate the ECOFEN energy model for the network part are shown in left part of Table \ref{tab:params} and come from previous work \cite{cornea_studying_2014-1}.

Cloud Part

Finally, to measure the energy consumed by the Cloud part, we use a real server from the large-scale test-bed Grid'5000. Grid'5000 provides clusters composed of several nodes which are connected to wattmeters. The wattmeters provide 50 instantaneous power measurements per second and per server. This way, we can benefit from real energy measurements. The server used in the experiment embeds two Intel Xeon E5-2620 v4 processors with 64 GB of RAM and 600GB of disk space on a Linux based operating system. This server is configured to use KVM as virtualization mechanism. We deploy a classical Debian x86_64 distribution on the Virtual Machine (VM) along with a MySQL database. We use different amounts of allocated memory for the VM namely 1024MB/2048MB/4096MB to highlight its effects on the server energy consumption. The server only hosts this VM in order to easily isolate its power consumption.

The data sent by the IoT devices are simulated using another server from the same cluster. This server is in charge of sending the data packets to the VM hosting the application in order to fill its database. In the following, each data packet coming from an IoT device and addressed to the application VM is called a request. Consequently, it is easy to vary the different application characteristics namely: \textbf{1)} The number of requests, to virtually add/remove sensors \textbf{2)} The requests interval, to study the impact of the transmitting frequency. Figure \ref{fig:g5kExp} presents this simulation setup.

Evaluation

IoT and Network Power Consumption

In this section, we analyze the experimental results. In a first place, we start by studying the impact of the sensors' transmission frequency on their energy consumption. To this end, we run several simulations in ns3 with 15 sensors using different transmission frequencies. The results provided by Table \ref{tab:sensorsSendIntervalEffects} show that the transmission frequency has a very low impact on the energy consumption and on the average end-to-end application delay. It has an impact of course, but it is very limited. This due to the fact that in such a scenario with very small number of communications spread over the time, sensors don't have to contend for accessing to the Wifi channel.

Previous work \cite{li_endend_2018} on a similar scenario shows that increasing application accuracy impacts strongly the energy consumption in the context of data stream analysis. However, in our case, application accuracy is driven by the sensing interval and thus, the transmission frequency of the sensors. In our case with small and sporadic network traffic, these results show that with a reasonable transmission interval, the energy consumption of the IoT and the network parts are almost not affected by the variation of this transmission interval. In fact, transmitted data are not large enough to leverage the energy consumed by the network.

We then vary the number of sensors in the Wifi cell. The Figure \ref{fig:sensorsNumber} represents the energy consumed by each simulated part according to the number of sensors. It is clear that the energy consumed by the network is the dominant part. However, if the number of sensors is increasing, the energy consumed by the network can become smaller than the sensors part. In fact, deploying new sensors in the cell do not introduce much network load. To this end, sensors energy consumption can become dominant.

Cloud Energy Consumption

In this end-to-end energy consumption study, cloud accounts for a huge part of the overall energy consumption. According a report \cite{shehabi_united_2016-1} On United States data center energy usage, the average Power Usage Effectiveness (PUE) of an hyper-scale data center is 1.2. Thus, in our analysis, all energy measurement on cloud server will account for this PUE. It means that the power consumption of the server is multiplied by the PUE to include the external energy costs like server cooling and data center facilities \cite{Ehsan}.

Firstly, we analyze the impact of the VM allocated memory on the server energy consumption. Figure \ref{fig:vmSize} depicts the server energy consumption according to the VM allocated memory for 20 sensors sending data every 10s. Note that the horizontal red line represents the average energy consumption for the considered sample of energy values. We can see that at each transmission interval, the server faces spikes of energy consumption. However, the amount of allocated memory to the VM does not significantly influence the server energy consumption. In fact, simple database requests do not need any particular heavy memory accesses and processing time. Thus, remaining experiments are based on VM with 1024MB of allocated memory.

Next, we study the effects of increasing the number of sensors on the server energy consumption. Figure \ref{fig:sensorsNumber-server} presents the results of the average server energy consumption when varying the number of sensors from 20 to 500, while Figure \ref{fig:sensorsNumber-WPS} presents the average server energy cost per sensor according to the number of sensors. These results show a clear linear relation between the number of sensors and the server energy consumption. Moreover, we can see that the more sensors we have per VM, the more energy we can save. In fact, since the server's idle power consumption is high (around 97 Watts), it is more energy efficient to maximize the number of sensors per server. As shown on Figure \ref{fig:sensorsNumber-WPS}, a significant amount of energy can be save when passing from 20 to 300 sensors per VM. Note that these measurements are not the row measurements taken from the wattmeters: they include the PUE but they are not shared among all the VMs that could be hosted on this server. So, for the studied server, its static power consumption (also called idle consumption) is around 83.2 Watts and we consider a PUE of 1.2, this value is taken from \cite{shehabi_united_2016-1}}.

A last parameter can leverage server energy consumption, namely sensors transmission interval. In addition to increasing the application accuracy, sensors transmission frequency increases network traffic and database accesses. Figure \ref{fig:sensorsFrequency} presents the impact on the server energy consumption when changing the transmission interval of 50 sensors to 1s, 10s and 30s. We can see that, the lower sensors transmission interval is, the more server energy consumption peaks occur. Therefore, it leads to an increase of the server energy consumption.

End-To-End Consumption Model

To have an overview of the energy consumed by the overall system, it is important to consider the end-to-end energy consumption. We detail here the model used to attribute the energy consumption of our application for each part of the architecture. For a given IoT device, we have:

  1. For the IoT part, the entire consumption of the IoT device belongs to the system's accounted consumption.
  2. For the network part, the data packets generated by the IoT device travel through network switches, routers and ports that are shared with other traffic.
  3. For the cloud part, the VM hosting the data is shared with other IoT devices belonging to the same application and the server hosting the VM also hosts other VMs. Furthermore, the server belongs to a data center and takes part in the overall energy drawn to cool the server room.

Concerning the IoT part, we include the entire IoT device power consumption. Indeed, in our targeted low-bandwidth IoT application, the sensor is dedicated to this application. From Table \ref{tab:params}, one can derive that the static power consumption of one IoT sensor is around 0.9 Watts. Its dynamic part depends on the transmission frequency.

Concerning the sharing of the network costs, for each router, we consider its aggregate bandwidth (on all the ports), its average link utilization and the share taken by our IoT application. For a given network device, we compute our share of the static energy part as follows:

where $P_{static}^{device}$ is the static power consumption of the network device (switch fabrics for instance or gateway), $Bandwidth^{application }$ Is the bandwidth used by our IoT application, $AggregateBandwidth^{device }$ is the overall aggregated bandwidth of the network device on all its ports, and $LinkUtilization^{device}$ is the effective link utilization percentage. The $Bandwidth^{application }$ depends on the transmission frequency in our use-case. The formula includes the link utilization in order to charge for the effective energy cost per trafic and not for the theoretical upper bound which is the link bandwidth. Indeed, using such an upper bound leads to greatly underestimate our energy part, since link utilization typically varies between 5 to 40% \cite{Hassidim2013,Zhang2016}.

Similarly, for each network port, we take the share attributable to our application: the ratio of our bandwidth utilization over the port bandwidth multiplied by the link utilization and the overall static power consumption of the port. Table \ref{tab:netbidules} summarizes the parameters used in our model, they are taken from \cite{mahadevan_power_2009,Hassidim2013}. These are the parameters used in our formula to compute the values that we used in the simulations and that are presented in left part of Table \ref{tab:params}.

For the sharing of the Cloud costs, we take into account the number of VMs that a server can host, the CPU utilization of a VM and the PUE. For a given Cloud server hosting our IoT application, we compute our share of the static energy part as follows:

Where $P_{static}^{server}$ is the static power consumption of the server, $PUE^{DataCenter}$ is the data center PUE, and $HostedVMs^{server}$ is the number of VMs a server can host. This last parameter should be adjusted in the case of VMs with multiple virtual CPUs. We do not consider here over-commitment of Cloud servers. Yet, the dynamic energy part is computed with the real dynamic measurements, so it accounts for VM over-provisioning and resource under-utilization.

In our case, the Cloud server has 14 cores, which corresponds to the potential hosting of 14 small VMs with one virtual CPU each, and each vCPU is pinned to a server core. We consider that for fault-tolerance purpose, the IoT application has a replication factor of 2, meaning that two cloud servers store its database.

The Figure \ref{fig:end-to-end} represents the end-to-end system energy consumption using the model described above while varying the number of sensors for a transmission interval of 10 seconds. The values are extracted from the experiments presented in the previous section.

Note that, for small-scale systems, with WiFi IoT devices, the IoT sensor part is dominant in the overall energy consumption. Indeed, the IoT application induces a very small cost on Cloud and network infrastructures compared to the IoT device cost. But, our model assumes that a single VM is handling multiple users (up to 300 sensors), thus being energy-efficient. Conclusions would be different with one VM per user in the case of no over-commitment on the Cloud side. For the network infrastructure, in our case of low-bandwidth utilization (one data packet every 10 seconds), the impact is almost negligible.

Another way of looking at these results is to observe that only for a high number of sensors (more than 300), the power consumption of Cloud and network parts start to be negligible (few percent). It means that, if IoT applications handle clients one by one (i.e. one VM per client), the impact is high on cloud and network part if they have only few sensors. The energy efficiency is really poor for only few devices: with 20 IoT sensors, the overall energy cost to handle these devices is almost doubled compared to the energy consumption of the IoT devices themselves. Instead of increasing the number of sensors, which would result in a higher overall energy consumption, one should focus on reducing the energy consumption of IoT devices, especially WiFi devices which are common due to WiFi availability everywhere. One could also focus on improving the energy cost of Cloud and network infrastructure for low-bandwidth applications and few devices.

Conclusion

Information and Communication Technology takes a growing part in the worldwide energy consumption. One of the root causes of this increase lies in the multiplication of connected devices. Each object of the Internet-of-Things often does not consume much energy by itself. Yet, their number and the infrastructures they require to properly work have leverage.

In this paper, we combine simulations and real measurements to study the energy impact of IoT devices. In particular, we analyze the energy consumption of Cloud and telecommunication infrastructures induced by the utilization of connected devices. Through the fine-grain analysis of a given low-bandwidth IoT device periodically sending data to a Cloud server using WiFi, we propose an end-to-end energy consumption model. This model provides insights on the hidden part of the iceberg: the impact of IoT devices on the energy consumption of Cloud and network infrastructures. On our use-case, we show that for a given sensor, its larger energy consumption is on the sensor part. But the impact on the Cloud and network part is huge when using only few sensors with low-bandwidth applications. Consequently, with the IoT exploding growth, it becomes necessary to improve the energy efficiency of applications hosted on Cloud infrastructures and of IoT devices. Our future work includes studying other types of IoT wireless transmission techniques that would be more energy-efficient. We also plan to study other IoT applications in order to increase the applicability of our model and provide advice for increasing the energy-efficiency of IoT infrastructures.

\bibliographystyle{IEEEtran} \bibliography{references}