
Building upon our previous blog post, which detailed EXIGENCE metrics for energy consumption, energy efficiency, and carbon footprint, this installment focuses on the practical implementation. We introduce EXIGENCE methods for energy consumption metering, specifically developed to address the unique requirements of the EXIGENCE architecture, its diverse use cases, and its sophisticated orchestration and coordination strategies. This work is crucial for bridging the gap between current State-of-the-Art (SoTA) methodologies and EXIGENCE’s specific needs.
To facilitate the per-service and per-user energy consumption metering advocated by EXIGENCE, it is essential to decompose services into their fundamental virtual components and accurately measure their individual energy consumption. This granular approach enables a precise assessment of both service-level energy consumption and the end-to-end energy usage of a user session. While 3GPP’s recommendations (TS 28.554, section 6.7.3.1) lean towards estimations derived from metrics such as vCPU and vMemory usage, EXIGENCE advocates for direct energy consumption measurements to the greatest extent possible. It is widely recognized that, although estimations are unavoidable for certain aspects of service-level granularity, measurement methods generally provide superior accuracy [1].
Our Method
Based on the EXIGENCE metrics, there is a need for (1) direct measurements methods where the result is direct product of measuring a quantity, e.g., measurement of power with power meter, and for (2) indirect measurement methods where certain calculations are required to get a final result.
Method for (external) measuring energy consumption of a hard-ware device
This method can be applied to every HW device connected to an external power source, either DC or AC. External measurement devices are utilised for this purpose, e.g., Watt meters. As energy consumption is typically a dynamic variable in a real-world scenarios, frequent reporting of power consumption is required, therefore W-meters should also allow for remote monitoring – example of such device is smart/metered Power Distribution Unit (PDU).
Since it is common to use W-meters, W-meters require further data processing (adding a time component) to produce energy consumption as a final result expressed in Joules or kWh. In case energy is supplied to the device by multiple power supply units, energy supplied from each single power supply unit should be considered, i.e., total energy consumption of the device is sum of all (partial) energy consumptions measured at each single power supply.

Method for (internal) measuring energy consumption of a HW device and components
Certain hardware devices have embedded capabilities for power management, i.e., Baseboard Management Controller (BMC), which may be also utilised for energy consumption measurements of the device itself and for some of its components. BMC is a specialised service processor that remotely monitors the physical state of a host system. To enable device/system health monitoring, power management, system maintenance, etc., it monitors parameters like temperature, fan status and speed, voltage, and other critical system performance indicators, however, it depends on a particular HW device what parameters are available for monitoring. Since energy consumption might not be directly measured on every platform, further data processing is required for the energy consumption estimation, i.e., based on voltage and current provided by BMC.
BMC is typically available in enterprise grade servers, as well as in some high-end network switches, routers, and NAS/SAN (Network Attached Storage, Storage Area Network) storage systems, and in certain embedded systems and industrial PCs. Typically, IPMI (Intelligent Platform Management Interface) protocol is then used to provide standardised commands and tools for interacting with the BMC. Alongside IPMI, modern servers typically also support Redfish API (Application Programming Interface), vendor-specific web interfaces, and SNMP (Simple Network Management Protocol).
Other than this, hardware measurements of energy consumption on the level of processors can be facilitated by hardware performance counters (HwPC). HwPC sensors allows for in-band monitoring of microarchitectural events inside the CPU, thus reporting on detailed performance information, including energy/power consumption, related to CPU’s functional units, caches, main memory, etc.

Counters provided by HwPC depends on CPU architecture due to the variation in hardware organisations. HwPC sensors further uses technologies such as the Running Average Power Limit (RAPL) to monitor CPU power and energy consumption.
Method for measuring energy consumption of a software process on a bare metal and in a virtualised environment
A software process, running either on a bare metal or in a virtualised environment, can either represent one of multiple components of a service, or can represent a complete service (e.g., in case where complete service/solution is packed within a single container or run on a single virtual machine, etc.).
Methods for measuring energy consumption of a software processes exploit multiple features such as energy or power consumption readings from hardware sensors, CPU utilisation, memory utilis02ation, input/output operations, hard-disk activity, etc. Monitoring of microarchitectural events inside the CPU can be enabled by sensors called hardware performance counters (HwPC), which report on detailed performance information, including energy/power consumption, related to CPU’s functional units, caches, main memory, etc. Counters provided by HwPC depends on specific CPU. Collected values serve as an input to power model which estimates final value, i.e., energy consumption. Power models typically utilise AI algorithms trained according to the input parameters available. Where there is a possibility to read from hardware sensors (e.g., HwPC in certain Intel CPUs sensors further utilise technology such as the Running Average Power Limit (RAPL) to monitor CPU power and energy consumption), these values are considered as most accurate. However, this approach, as suggested by its name, can be available only where hardware sensors are available (e.g., bare metal), while in case of software processes running in a virtual machine, hardware sensors are not accessible, and the power model must therefore rely on parameters computed by kernel, such as previously mentioned CPU utilisation, memory utilisation, disk and network performances, etc. Unfortunately, as observed by [1], values provided solely by kernel are not considered to be very precise.
Methods for calculating derived energy consumption metrics
EXIGENCE previous blog post proposes multiple derived metrics that cannot be measured with a direct method. However, derived metrics rely on metrics able to be directly measured, thus only calculation according to the definition of the corresponding metric is required to get the final result:
- Method for calculating energy consumption of a software component
This method bases on Method for measuring energy consumption of a software process on a bare metal and in a virtualised environment. In case a software component is composed by a single software process, before mentioned method suffices, while in case software component has multiple (underlying) software processes, software component’s energy consumption would be a sum of its underlying software processes consumption. Besides summing partial energy consumptions, all contributing software processes must be identified first.
- Method for calculating energy consumption of a complete service
This method is based on Method for measuring energy consumption of a software process on a bare metal and in a virtualised environment and Method for calculating energy consumption of a software component (see above). First, all software components and/or software processes contributing to the service must be identified. Based on this identification, energy consumption of a (complete) service is the sum of energy consumption contributed by every single software component and/or software process identified before.
- Method for calculating energy consumption of a virtualised environment
This method bases on Method for measuring energy consumption of a software process on a bare metal and in a virtualised environment, Method for calculating energy consumption of a software component and Method for calculating energy consumption of a complete service. Energy consumption of a virtualised environment is a sum of energy consumption contributed by every single software component, software process and/or service that is required for the virtual environment to operate. Energy consumption of every software process, component, and service is evaluated by one of the above-mentioned methods.
To sum up
In this blog post, we unveil the foundational work on EXIGENCE energy consumption measurement methods. Our approach is to directly implement the established EXIGENCE metrics by favoring precise measurements over estimations to ensure optimal accuracy. While the individual methods themselves may not be novel, their integration into a service-level framework provides an innovative lens through which to evaluate energy consumption within modern, virtualised, and distributed ICT environments. Please note, this represents an early stage in the evolution of EXIGENCE methods, and we encourage you to follow our progress.
References
Author

Internet Institute Ltd
Rudolf Susnik, manages research and innovation-oriented projects at Internet Institute, focusing on 5G/6G, IoT, edge-cloud continuum, sustainability in ICT and ICT for sustainability. He has over 15 years of experiences from ICT industry, working for network operators and vendors. As well, he also has research and teaching experiences from academia, i.e., University of Ljubljana, where he received his PhD in 2007. In his free time, he actively serves as a volunteer firefighter, contributing to community safety and emergency response.