  Containers are becoming a popular workload deployment mechanism in modern
distributed systems. However, there are limited software-based methods
(hardware-based methods are expensive requiring hardware level changes) for
obtaining the power consumed by containers for facilitating power-aware
container scheduling, an essential activity for efficient management of
distributed systems. This paper presents WattsApp, a tool underpinned by a six
step software-based method for power-aware container scheduling to minimize
power cap violations on a server. The proposed method relies on a neural
network-based power estimation model and a power capped container scheduling
technique. Experimental studies are pursued in a lab-based environment on 10
benchmarks deployed on Intel and ARM processors. The results highlight that the
power estimation model has negligible overheads for data collection - nearly
90% of all data samples can be estimated with less than a 10% error, and the
Mean Absolute Percentage Error (MAPE) is less than 6%. The power-aware
scheduling of WattsApp is more effective than Intel's Running Power Average
Limit (RAPL) based power capping for both single and multiple containers as it
does not degrade the performance of all containers running on the server. The
results confirm the feasibility of WattsApp.
