  Web servers scaled across distributed systems necessitate complex runtime
controls for providing quality of service (QoS) guarantees as well as
minimizing the energy costs under dynamic workloads. This paper presents a
QoS-aware runtime controller using horizontal scaling (node allocation) and
vertical scaling (resource allocation within nodes) methods synergistically to
provide adaptation to workloads while minimizing the power consumption under
QoS constraint (i.e., response time). A horizontal scaling determines the
number of active nodes based on workload demands and the required QoS according
to a set of rules. Then, it is coupled with vertical scaling using transfer
Q-learning, which further tunes power/performance based on workload profile
using dynamic voltage/frequency scaling (DVFS). It transfers Q-values within
minimally explored states reducing exploration requirements. In addition, the
approach exploits a scalable architecture of the many-core server allowing to
reuse available knowledge from fully or partially explored nodes. When
combined, these methods allow to reduce the exploration time and QoS violations
when compared to model-free Q-learning. The technique balances design-time and
runtime costs to maximize the portability and operational optimality
demonstrated through persistent power reductions with minimal QoS violations
under different workload scenarios on heterogeneous multi-processing nodes of a
server cluster.
