Journal Home > Volume 20 , Issue 1

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, vCPU 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 FlexCore, a new scheduling scheme using vCPU ballooning, which dynamically adjusts the number of vCPUs 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% to 79.6%.


menu
Abstract
Full text
Outline
About this article

FlexCore: Dynamic Virtual Machine Scheduling Using VCPU Ballooning

Show Author's information Tianxiang MiaoHaibo Chen( )
Institute of Parallel And Distributed System (IPADS), the School of Software, Shanghai Jiao Tong University, Shanghai 200240, China.

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, vCPU 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 FlexCore, a new scheduling scheme using vCPU ballooning, which dynamically adjusts the number of vCPUs 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% to 79.6%.

Keywords: virtualization, SMP virtual machine, multicore processor, vCPU ballooning

References(25)

[1]
Barham P., Dragovic B., Fraser K., Hand S., Harris T., Ho A., Neugebauer R., Pratt I., and Warfield A., Xen and the art of virtualization, ACM SIGOPS Operating Systems Review, vol. 37, no. 5, pp. 164-177, 2003.
[2]
Kivity A., Kamay Y., Laor D., Lublin U., and Liguori A., kvm: The Linux virtual machine monitor, in Proceedings of the Linux Symposium, 2007, pp. 225-230.
[3]
Xu C., Bai Y., and Luo C., 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.
DOI
[4]
Lv H., Dong Y., Duan J., and Tian K., Virtualization challenges: A view from server consolidation perspective, ACM SIGPLAN Notices, vol. 47, no. 7, pp. 15-26, 2012.
[5]
Song X., Shi J., Chen H., and Zang B., Schedule processes, not VCPUs, in Proceedings of the 4th Asia-Pacific Workshop on Systems, 2013.
DOI
[6]
Chen P. M. and Noble B. D., 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]
Weng C., Wang Z., Li M., and Lu X., 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.
DOI
[8]
Sukwong O. and Kim H. S., Is co-scheduling too expensive for SMP VMs? in Proceedings of the Sixth Conference on Computer Systems, 2011, pp. 257-272.
DOI
[9]
Bai Y., Xu C., and Li Z., Task-aware based co-scheduling for virtual machine system, in Proceedings of the 2010 ACM Symposium on Applied Computing, 2010, pp. 181-188.
DOI
[10]
Waldspurger C. A., Memory resource management in VMware ESX server, ACM SIGOPS Operating Systems Review, vol. 36, no. SI, pp. 181-194, 2002.
[11]
[12]
Bienia C., Kumar S., Singh J. P., and Li K., 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.
DOI
[13]
Linux profiling with Perf, http://lwn.net/Articles/487018/, 2014.
[14]
lockstat in linux kernel, http://lwn.net/Articles/252835/, 2014.
[15]
Hammalund P., Crossland J., Kaushik S., and Aggarwal A., Inter-processor interrupts, U.S. Patent Application 10/631,522, 2003.
[16]
The Linux Kernel Archives, https://www.kernel.org/, 2014.
[17]
Liu R., Zhang H., and Chen H., 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]
Anderson T. E., 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]
McKenney P. E. and Slingwine J. D., Read-copy update: Using execution history to solve concurrency problems, in Parallel and Distributed Computing and Systems, 1998, pp. 509-518.
[21]
Mwaikambo Z., Raj A., Russell R., and Schopp J., Linux kernel hotplug CPU support, presented in Linux Symposium, 2004.
[22]
Bellard F., QEMU, a fast and portable dynamic translator, in USENIX Annual Technical Conference, FREENIX Track, 2005, pp. 41-46.
[23]
Rao J. and Zhou X., 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.
DOI
[24]
Uhlig V., LeVasseur J., Skoglund E., and Dannowski U., Towards scalable multiprocessor virtual machines, in Virtual Machine Research and Technology Symposium, 2004, pp. 43-56.
[25]
Kim H., Kim S., Jeong J., Lee J., and Maeng S., 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.
DOI
Publication history
Copyright
Rights and permissions

Publication history

Received: 24 November 2014
Revised: 01 December 2014
Accepted: 07 December 2014
Published: 12 February 2015
Issue date: February 2015

Copyright

© The authors 2015

Rights and permissions

Return