Abstract
Modern multi-core, multi-socket hardware powering the "cloud" is designed with memory and cache resources that have local associativity to a group of cores. Operating systems have characterized these associativities as part of Non-Uniform Memory Architecture (NUMA) optimizations within their virtual memory manager (VMM) and scheduler which improves application performance. Mature NUMA optimizations are prevalent for an OS running on bare-hardware. However, their benefits are reduced within virtual machines(VM) in the cloud. Even though cloud applications are executed by standard multi-core multi-socket hardware, the abstraction brought in by the virtualization layer makes it challenging to optimize resource management within a VM. This paper describes new paradigms in hypervisor technology-- scheduling VMs on cores and managing their memory resources which streamlines their execution on underlying multicore hardware. Being Linux kernel developers, we base our work on Linux operating system and Kernel Virtual Machine (KVM) --a subsystem which turns the Linux kernel into a scalable hypervisor. We evaluate few approaches for optimal resource allocation with KVM. We summarize our findings with a comparative study of how different scheduling algorithms can be employed with KVM for various systems to support efficient resource placement while running cloud workloads.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.