Tips

VM Placement: Does the Guest OS Matter?

Grouping VMs by OS and application on a physical host can improve memory performance.

Chris: I've heard conflicting accounts from consultants on virtual machine placement. Some say to group VMs with like OSes and applications on the same physical hosts. Several others say it doesn't matter. I attended one of your seminars and remember you mentioning that there is a benefit to placing like applications and operating systems on the same host, but can't remember what that benefit is. Can you shed some light on this?
-- Kumar

Grouping VMs running like operating systems or applications is advantageous for organizations using a virtualization platform that supports memory sharing. Memory sharing is a feature of select virtualization platforms and is used by the virtualization engine to remove redundant memory pages.

Consider 10 VMs running on a system that run the exact same OS. In such a scenario, the guest OS in all 10 VMs would require the same read-only pages for OS data. Why load the same page into physical memory 10 times when only one instance is really needed? That is the logic behind memory sharing.

Memory sharing is a very useful server virtualization feature; however, the majority of server virtualization platforms do not support it. The varying levels of memory sharing support amongst platforms is likely what led Kumar to receive different perspectives from the consultants that he had spoken with.

Memory sharing is one of the “under the hood technologies” and in my experience remains relatively unknown. Two x86 virtualization platforms offer memory sharing today: VMware ESX Server and SWsoft Virtuozzo. Microsoft Virtual Server and Xen-based hypervisors (i.e. Citrix XenServer, Xen 3.x on Novell SuSE Enterprise Server, Xen 3.x on Red Hat Enterprise Linux, Virtual Iron) do not currently support memory sharing. Both Microsoft and XenSource claim performance as justification for not supporting memory sharing which, to a degree, is true.

The trick to an effective memory sharing architecture, however, is for the virtualization platform to scan for redundant memory pages when resource utilization is at a minimum, so the extra CPU cycles needed to locate redundant memory pages ultimately has no impact on VM performance. This is how memory sharing is managed on a VMware ESX Server. An ESX Server will only scan for redundant physical memory pages when resource utilization is at a minimum, oftentimes causing scans to only run at night during non-business hours.

Since system resources are only devoted to shared memory optimization during off-peak hours, it may take up to a week or longer before an ESX server realizes optimal memory consolidation. The result is up to a 30 percent reduction in required physical memory. Get more information and resources on virtual machine memory sharing at my blog post, "Server Virtualization Memory Sharing -- Vendors Divided."

About the Author

Chris Wolf is VMware's CTO, Global Field and Industry.

Featured

Subscribe on YouTube