Clouds inherit CPU scheduling policies of operating systems.
These policies enforce fairness while leveraging
best-effort mechanisms to enhance responsiveness of all
schedulable entities, irrespective of their service level objectives
(SLOs). This leads to unpredictable performance
that forces cloud providers to enforce strict reservation
and isolation policies to prevent high-criticality services
(e.g., Memcached) from being impacted by low-criticality
ones (e.g., logging), which results in low utilization.
In this paper, we present Akita, a hypervisor CPU
scheduler that delivers predictable performance at high
utilization. Akita allows virtual machines (VMs) to be
categorized into high- and low-criticality VMs. Akita provides
strong guarantees on the ability of cloud providers to
meet SLOs of high-criticality VMs, by temporarily slowing
down low-criticality VMs if necessary. Akita, therefore,
allows the co-existence of high and low-criticality
VMs on the same physical machine, leading to higher utilization.
The effectiveness of Akita is demonstrated by
a prototype implementation in the Xen hypervisor. We
present experimental results that show the many advantages
of adopting Akita as the hypervisor CPU scheduler.
In particular, we show that high-criticality Memcached
VMs are able to deliver predictable performance despite
being co-located with low-criticality CPU-bound VMs.First author draf