Cache-Aware Virtual Machine Scheduling on Multi-Core Architecture

Cheol-Ho HONG  Young-Pil KIM  Seehwan YOO  Chi-Young LEE  Chuck YOO  

IEICE TRANSACTIONS on Information and Systems   Vol.E95-D   No.10   pp.2377-2392
Publication Date: 2012/10/01
Online ISSN: 1745-1361
DOI: 10.1587/transinf.E95.D.2377
Print ISSN: 0916-8532
Type of Manuscript: PAPER
Category: Software System
virtualization,  cache-aware scheduling strategy,  multi-core processor,  

Full Text: PDF>>
Buy this Article

Facing practical limits to increasing processor frequencies, manufacturers have resorted to multi-core designs in their commercial products. In multi-core implementations, cores in a physical package share the last-level caches to improve inter-core communication. To efficiently exploit this facility, operating systems must employ cache-aware schedulers. Unfortunately, virtualization software, which is a foundation technology of cloud computing, is not yet cache-aware or does not fully exploit the locality of the last-level caches. In this paper, we propose a cache-aware virtual machine scheduler for multi-core architectures. The proposed scheduler exploits the locality of the last-level caches to improve the performance of concurrent applications running on virtual machines. For this purpose, we provide a space-partitioning algorithm that migrates and clusters communicating virtual CPUs (VCPUs) in the same cache domain. Second, we provide a time-partitioning algorithm that co-schedules or schedules in sequence clustered VCPUs. Finally, we present a theoretical analysis that proves our scheduling algorithm is more efficient in supporting concurrent applications than the default credit scheduler in Xen. We implemented our virtual machine scheduler in the recent Xen hypervisor with para-virtualized Linux-based operating systems. We show that our approach can improve performance of concurrent virtual machines by up to 19% compared to the credit scheduler.