FlexCore: Dynamic Virtual Machine Scheduling Using VCPU BallooningFlexCore: Dynamic Virtual Machine Scheduling Using VCPU Ballooning
Tianxiang Miao;Haibo Chen;
摘要(Abstract):
As multi-core processors become the de-facto configuration in modern computers, the adoption of SMP Virtual Machines(VMs) has been increasing, allowing for more efficient use of computing resources. However,because of existence of schedulers in both the hypervisor and the guest VMs, this creates a new research problem,viz., double scheduling. Although double scheduling may cause many issues including lock-holder preemption,v CPU stacking, CPU fragmentation, and priority inversion, prior approaches have either introduced new problems and/or addressed the problem incompletely. In this paper, we describe the design and implementation of Flex Core,a new scheduling scheme using v CPU ballooning, which dynamically adjusts the number of v CPUs of a VM at runtime. This essentially eliminates unnecessary scheduling in the hypervisor layer, and thus, boosts performance significantly. An evaluation using a complete KVM-based implementation shows that the average performance improvement for PARSEC applications on a 12-core Intel machine is approximately 52.9%, ranging from 35.4% to79.6%.
关键词(KeyWords):
基金项目(Foundation):
作者(Authors): Tianxiang Miao;Haibo Chen;
参考文献(References):
- [1]P.Barham,B.Dragovic,K.Fraser,S.Hand,T.Harris,A.Ho,R.Neugebauer,I.Pratt,and A.Warfield,Xen and the art of virtualization,ACM SIGOPS Operating Systems Review,vol.37,no.5,pp.164–177,2003.
- [2]A.Kivity,Y.Kamay,D.Laor,U.Lublin,and A.Liguori,kvm:The Linux virtual machine monitor,in Proceedings of the Linux Symposium,2007,pp.225–230.
- [3]C.Xu,Y.Bai,and C.Luo,Performance evaluation of parallel programming in virtual machine environment,in Network and Parallel Computing,2009.NPC’09.Sixth IFIP International Conference on.IEEE,2009,pp.140–147.
- [4]H.Lv,Y.Dong,J.Duan,and K.Tian,Virtualization challenges:A view from server consolidation perspective,ACM SIGPLAN Notices,vol.47,no.7,pp.15–26,2012.
- [5]X.Song,J.Shi,H.Chen,and B.Zang,Schedule processes,not VCPUs,in Proceedings of the 4th AsiaPacific Workshop on Systems,2013.
- [6]P.M.Chen and B.D.Noble,When virtual is better than real operating system relocation to virtual machines,in Hot Topics in Operating Systems,2001.Proceedings of the Eighth Workshop on.IEEE,2001,pp.133–138.
- [7]C.Weng,Z.Wang,M.Li,and X.Lu,The hybrid scheduling framework for virtual machine systems,in Proceedings of the 2009 ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments,2009,pp.111–120.
- [8]O.Sukwong and H.S.Kim,Is co-scheduling too expensive for SMP VMs?in Proceedings of the Sixth Conference on Computer Systems,2011,pp.257–272.
- [9]Y.Bai,C.Xu,and Z.Li,Task-aware based co-scheduling for virtual machine system,in Proceedings of the 2010ACM Symposium on Applied Computing,2010,pp.181–188.
- [10]C.A.Waldspurger,Memory resource management in VMware ESX server,ACM SIGOPS Operating Systems Review,vol.36,no.SI,pp.181–194,2002.
- [11]The CPU Scheduler in VMware ESX 4.1,http://www.vmware.com/files/pdf/techpaper/VMW v Sphe re41 cpu schedule ESX.pdf,2014.
- [12]C.Bienia,S.Kumar,J.P.Singh,and K.Li,The PARSEC benchmark suite:Characterization and architectural implications,in Proceedings of the 17th International Conference on Parallel Architectures and Compilation Techniques,2008,pp.72–81.
- [13]Linux profiling with Perf,http://lwn.net/Articles/487018/,2014.
- [14]lockstat in linux kernel,http://lwn.net/Articles/252835/,2014.
- [15]P.Hammalund,J.Crossland,S.Kaushik,and A.Aggarwal,Inter-processor interrupts,U.S.Patent Application 10/631,522,2003.
- [16]The Linux Kernel Archives,https://www.kernel.org/,2014.
- [17]R.Liu,H.Zhang,and H.Chen,Scalable read-mostly synchronization using passive reader-writer locks,in Proceedings of the 2014 USENIX Conference on USENIX Annual Technical Conference,USENIX Association,2014,pp.219–230.
- [18]T.E.Anderson,The performance of spin lock alternatives for shared-money multiprocessors,Parallel and Distributed Systems,IEEE Transactions on,vol.1,no.1,pp.6–16,1990.
- [19]Intel 64 and IA-32 Architectures Software Developers Manual.Volume 3A:System Programming Guide,2013.
- [20]P.E.Mc Kenney and J.D.Slingwine,Read-copy update:Using execution history to solve concurrency problems,in Parallel and Distributed Computing and Systems,1998,pp.509–518.
- [21]Z.Mwaikambo,A.Raj,R.Russell,and J.Schopp,Linux kernel hotplug CPU support,presented in Linux Symposium,2004.
- [22]F.Bellard,QEMU,a fast and portable dynamic translator,in USENIX Annual Technical Conference,FREENIX Track,2005,pp.41–46.
- [23]J.Rao and X.Zhou,Towards fair and efficient SMP virtual machine scheduling,in Proceedings of the 19th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming,2014,pp.273–286.
- [24]V.Uhlig,J.Le Vasseur,E.Skoglund,and U.Dannowski,Towards scalable multiprocessor virtual machines,in Virtual Machine Research and Technology Symposium,2004,pp.43–56.
- [25]H.Kim,S.Kim,J.Jeong,J.Lee,and S.Maeng,Demand-based coordinated scheduling for smp vms,in Proceedings of the Eighteenth International Conference on Architectural Support for Programming Languages and Operating Systems,2013,pp.369–380.