Measure energy consumption of server-side applications and cloud-based systems
- 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).
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:
- blog post Energy and power usage data in the cloud by Green Coding Solutions
- project Real Time Cloud (GSF Project)
Estimating using a model
See Estimate energy consumption of web and cloud-based software with models.