SmartWatts is a formula for a self-adaptive software-defined power meter based on the PowerAPI framework
.
This project is the implementation of the power meter depicted in the SmartWatts: Self-Calibrating Software-Defined Power Meter for Containers
paper published in the 20th IEEE/ACM International Symposium on Cluster, Cloud and Internet Computing (CCGRID).
This project provides a software power meter that estimates the power consumption (CPU/DRAM) of the software containers
(i.e. Docker containers, Kubernetes pods, Libvirt virtual machines...) running on a system.
This software power meter is based on Power Models
that distribute the total energy consumption across the running containers depending on their resource usage.
The Running Average Power Limit (RAPL)
feature is used to measure the total energy consumption of the CPU/DRAM components, and the Hardware Performance Counters (HwPC)
are used to measure the resource usage of the containers.
To monitor the Hardware Performance Counters (HwPC) of the software containers running on a Linux system, the hwpc-sensor project is the preferred solution. There is currently no support for other client/server platforms such as Windows, MacOS or VMware.
SmartWatts is an open-source project developed by the Spirals project-team, a joint research group between the University of Lille and Inria.
The documentation is available on the PowerAPI website.
You can follow the latest news and asks questions by subscribing to our mailing list.
If you would like to contribute, you can do so through GitHub by forking the repository and sending a pull request.
When submitting code, please check that it follows the project's rules and that the tests pass.
There is two ways to install official releases of SmartWatts:
- Using the Container image (recommended) from Docker Hub or the Github Container Registry ;
- Using the Python package from Pypi.