Dynamic adaptive scheduling for virtual machines

With multi-core processors becoming popular, exploiting their computational potential becomes an urgent matter. The functionality of multiple standalone computer systems can be aggregated into a single hardware computer by virtualization, giving efficient usage of the hardware and decreased cost for power. Some principles of operating systems can be applied directly to virtual machine systems, however virtualization disrupts the basis of spinlock synchronization in the guest operating system, which results in performance degradation of concurrent workloads such as parallel programs or multi-threaded programs in virtual machines. Eliminating this negative influence of virtualization on synchronization seems to be a non-trivial challenge, especially for concurrent workloads. In this work, we first demonstrate with parallel benchmarks that virtualization can cause long waiting times for spinlock synchronization in the guest operating system, resulting in performance degradation of parallel programs in the virtualized system. Then we propose an adaptive dynamic coscheduling approach to mitigate the performance degradation of concurrent workloads running in virtual machines, while keeping the performance of non-concurrent workloads. For this purpose, we build an adaptive scheduling framework with a series of algorithms to dynamically detect the occurrence of spinlocks with long waiting times, and determine and execute coscheduling of virtual CPUs on physical CPUs in the virtual machine monitor. We have implemented a prototype (ASMan) based on Xen and Linux. Experiments show that ASMan achieves better performance for concurrent workloads, while maintaining the performance for non-concurrent workloads. ASMan coscheduling depends directly on the dynamic behavior of virtual CPUs, unlike other approaches which depend on static properties of workloads and manual setting of rules. Therefore, ASMan achieves a better trade-off between coscheduling and non-coscheduling in the virtual machine monitor, and is an effective solution to this open issue.

[1]  Peter J. Denning,et al.  The locality principle , 2005, CACM.

[2]  Joshua LeVasseur,et al.  Towards Scalable Multiprocessor Virtual Machines , 2004, Virtual Machine Research and Technology Symposium.

[3]  Thomas Friebel,et al.  How to Deal with Lock Holder Preemption , 2008 .

[4]  Larry Rudolph,et al.  Gang Scheduling Performance Benefits for Fine-Grain Synchronization , 1992, J. Parallel Distributed Comput..

[5]  A. Roth,et al.  Learning in Extensive-Form Games: Experimental Data and Simple Dynamic Models in the Intermediate Term* , 1995 .

[6]  Peter H. Gum,et al.  System/370 Extended Architecture: Facilities for Virtual Machines , 1983, IBM J. Res. Dev..

[7]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools (2nd Edition) , 2006 .

[8]  John K. Ousterhout Scheduling Techniques for Concurrebt Systems. , 1982, ICDCS 1982.

[9]  Brian D. Noble,et al.  When Virtual Is Better Than Real , 2001 .

[10]  Michael L. Scott,et al.  Algorithms for scalable synchronization on shared-memory multiprocessors , 1991, TOCS.

[11]  Alexandra Fedorova,et al.  Addressing shared resource contention in multicore processors via scheduling , 2010, ASPLOS 2010.

[12]  Minglu Li,et al.  The hybrid scheduling framework for virtual machine systems , 2009, VEE '09.

[13]  John K. Ousterhout,et al.  Scheduling Techniques for Concurrent Systems , 1982, ICDCS.

[14]  Uwe Schwiegelshohn,et al.  Parallel Job Scheduling - A Status Report , 2004, JSSPP.

[15]  David H. Bailey,et al.  The NAS parallel benchmarks summary and preliminary results , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[16]  Carl A. Waldspurger,et al.  Memory resource management in VMware ESX server , 2002, OSDI '02.

[17]  Amin Vahdat,et al.  Dynamic Scheduling of Virtual Machines Running HPC Workloads in Scientific Grids , 2007, 2009 3rd International Conference on New Technologies, Mobility and Security.

[18]  Heeseung Jo,et al.  Task-aware virtual machine scheduling for I/O performance. , 2009, VEE '09.

[19]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[20]  Dror G. Feitelson,et al.  Improved Utilization and Responsiveness with Gang Scheduling , 1997, JSSPP.

[21]  James E. Smith,et al.  Virtual machines - versatile platforms for systems and processes , 2005 .

[22]  Peter J. Denning,et al.  Experiments with program locality , 1899, AFIPS '72 (Fall, part I).

[23]  Alexandra Fedorova,et al.  Addressing shared resource contention in multicore processors via scheduling , 2010, ASPLOS XV.

[24]  Alex Garthwaite,et al.  Mostly lock-free malloc , 2002, ISMM '02.

[25]  Jeff Dike,et al.  User-mode Linux , 2006, Annual Linux Showcase & Conference.

[26]  Andrew Warfield,et al.  Xen and the art of virtualization , 2003, SOSP '03.

[27]  Anand Sivasubramaniam,et al.  Xen and Co.: Communication-Aware CPU Management in Consolidated Xen-Based Hosting Platforms , 2009, IEEE Transactions on Computers.