I'm looking for a basic guide to get started with overscribing host hardware for my virtual machines. My basic scenario is below, but I'm not looking to address this particular case so much as general information for how to go about allocating the types of resources described, and measuring results.
Let's say I have a server that acts as a VM host. It has a 6-core processor with hyper-threading (12 virtual CPUs) and 12 GB a ram. The server currently has six VMs. The resources allocated to each VM vary somewhat from 1 to 4 CPUs and from .5 to 4GB of RAM, depending on the expected load or importance of the particular VM. The total allocated resources currently add up to exactly 12 GB RAM and 12 cores. This includes a small reservation for the VM host.
I can't help but feel that I'm leaving resources on the table. Not every virtual server is 100% busy all the time... far from it. I expect I could improve overall performance by making more resources available to the virtual servers, such that busy servers are able to take advantage of resources left idle by free servers. I hope that's clear.
I want to know how to capture those idle resources. How do I measure how much is really free? How much can I really oversubscribe? How do I monitor the situation as time passes (systems tend to grow, and so I expect an appropriate over-subscribe today may not remain that way tomorrow). Do I need to do anything special when increasing the resources so the host knows how to share if things get tight?
My host is Hyper-V on Server 2008 R2 but, again, I'm really looking for more general information. Details about VMWare, Xen, etc are welcome.