Measure energy consumption of server-side applications and cloud-based systems

Carbon emissions of websites & cloud applications
Measuring vs. Monitoring

  • Measuring: quantification of energy consumption at a given point in time for a particular scenario with a specific software configuration.
  • Monitoring: continuously observation and assessment of energy consumption changes over time.

Foundation

Hardware features

Virtualized environments

See paper Virtual machine power metering and provisioning (Kansal, Zhao, Liu, Kothari, Bhattacharya 2010).

kansal.etal.2010.virtualmachinepower (pg. 1)

Power management requirements in modern data centers have led to most new servers providing power usage measurement in hardware and alternate solutions exist for older servers using circuit and outlet level measurements. However, VM power cannot be measured purely in hardware. We present a solution for VM power metering, named Joulemeter.

kansal.etal.2010.virtualmachinepower (pg. 11)

We presented a VM power metering approach that can be implemented on current virtualized platforms without adding any additional hardware or software instrumentation. The guest VMs are not modified and existing hardware capabilities are used. We addressed the challenges involved in obtaining a low estimation error for cloud scenarios with several different types of workloads sharing the same hardware. Our solutions also adapts to changes in workload characteristics and hardware configurations. The end result is a mechanism that extends the current physical server power monitoring solutions to VM power monitoring.

Measuring on physical machines

Scaphandre

Purpose: Measure the power consumption of software on bare metal hosts and qemu/kvm virtual machines using RAPL

Energizta

https://github.com/Boavizta/Energizta
https://boavizta.github.io/Energizta/

Energizta is a collaborative project to collect and report open-data on the energy consumption of servers.
It uses a script that collects hardware configurations and retrieve power consumption metrics on bare metal servers at different states with different methods.

Measuring of containers

Green Metrics Tool

Purpose: Measure energy consumption of containerized applications

GreenFrame CLI

Purpose: Estimate the carbon footprint of a user scenario on a web application (full-stack) using Docker

Cardamon

Purpose: Estimates power consumption of software running on bare metal or Docker using the Teads estimation method

Measuring in Kubernetes clusters

Kepler

Purpose: Analyse Kubernetes power consumption and visualize it

Measuring/estimating in the cloud

Getting real energy data

None of the big hyperscalers provide data about the energy consumption or allow the access to RAPL or IPMI.
One cloud offering that allows accessing IPMI is Blockheating. Here you get bare metal machines with also access to IPMI.

See also:

Estimating using a model

See Estimate energy consumption of web and cloud-based software with models.

Measuring in CI/CD pipelines

See Measure energy consumption of software in CI pipelines.