AMD Best Practices Series. A Contributed Series by AMD.
The Virtual Balancing Act - how many virtual machines are too many? is written by Tim Mueting, Product Marketing Manager at AMD
A lot has been written recently on the number of virtual machines (VMs) that can (or should) optimally and safely run on a single physical server. While there are many differing opinions, most agree on the basic principles. The customers I talk to tell me they attempt to balance performance, utilization and risk in determining what is "optimal".
We all want to get the most out of our hardware investment, and server consolidation through virtualization plays an important role in meeting, and in many ways exceeding, this goal. But determining just how many VMs can be supported on a particular hardware platform without impacting the performance needs of end user applications can be a tricky task. We have to take into consideration the needs of the differing workloads sharing the same physical resources, including CPU, Memory or I/O bandwidth.
Virtualization can place a high demand on the server's CPU, memory, cache and I/O bandwidth. To improve just how those resources are used and shared in a virtual environment - in some cases taking the burden off managing those resources in software - AMD has implemented several CPU extensions with our AMD VirtualizationTM technology. In addition, the added number of cores, now up to 12 cores per socket with our AMD OpteronTM 6100 Series processor, the additional memory capacity and memory channels, and faster Hyper Transport Links (think HT3) have all helped to increase VM density, or the number of virtual machines that can be on a single physical server.
Based on a very unscientific, random poll I've been taking at various trade shows, user group meetings and customer visits, it appears that most administrators attempt to stay within 50 - 65% capacity of their physical servers as long as they are meeting their performance requirements. This seems very realistic to me and a far cry better than the 3-8% utilization rates we were getting prior to implementing a virtualization solution.
At the same time, they tell me they are still reluctant to overload a physical server with a large number of VMs even if the capacity is available. What happens if a hardware failure is encountered? More VMs would be unavailable, more applications would be unavailable, more users would be affected and it would take longer to move those VMs to an available physical server and get everything up and running again. Therein lays the virtual balancing act. We still have to plan for a suitable time to recover in case of an unplanned outage.
Cores and Memory
Another important aspect when considering how many VMs to run is memory. How much memory do you need per core or per VM? It's my understanding that some experts recommend 2-4GB of memory per core, while others recommend that amount per VM depending on the type of workload. We know from experience that the more cores and memory we have for our virtual environments, the more capacity and better performance we can achieve.
And we can't forget about I/O. There are new features and technologies being introduced to ensure better throughput and performance for those workloads with heavy I/O characteristics. Stay tuned here for more on that topic soon.
There are several tools and technical resources available that can help give you a better idea of what your configuration should look like. VMware offers a product called VMware vCenter CapacityIQ which plugs into vCenter Server and provides capacity management for both datacenter and desktop environments. Microsoft offers its Assessment and Planning Toolkit which provides server virtualization scenarios to assist in planning for server consolidation with Microsoft Hyper-V.
HP, Dell and a variety of others offer services that utilize these same tools and various other resources that can also be effective, in addition to providing you an independent evaluation of your needs.
Back to our original question: how many is too many? According to a 2008 study by SearchVirtualization.com, 62% of the respondents were running 10 or fewer virtual machines per host and 5% were running more than 25 VMs per host. I'm sure these numbers have increased over the last year or more, but by how much?
What criteria do you use to optimize your environment? How many VMs are you running today and how many do you consider ideal?
Tim Mueting is a Product Marketing Manager at AMD. His postings are his own opinions and may not represent AMD's positions, strategies or opinions. Links to third party sites are provided for convenience and unless explicitly stated, AMD is not responsible for the contents of such linked sites and no endorsement is implied.
The AMD Cloud Computing Blog can be found here.