Virtualization don'ts: Neglecting VM resource allocation

You can't truly benefit from virtualization if you neglect the process of virtual machine resource allocation. Here are the key steps for successful strategy.

These days, server virtualization seems like a no-brainer, but maximizing the virtual machine-to-host ratio remains a top goal for many organizations. Logically, this makes sense, because improving these ratios provides cost savings by reducing hardware and licensing expenditures.

To do so correctly, however, you need to pay attention to the resource allocation of each virtual machine (VM). Otherwise, you may distribute server resources inefficiently. To maximize your VM-to-host ratio, consider the following:

  • Establish VM resource baselines. Determine the amount of resources that certain workloads and applications require. In general, start conservatively because, down the road, it's harder to shift unutilized resources.
  • Work with your vendors. Understand how particular applications affect resource deployment. From there, incrementally add RAM, CPUs or disk space as necessary.

In general, appropriately sizing VM resources early on is critical not only in making a particular workload run efficiently but also in making your virtualization environment successful.

Establishing a VM resource benchmark

The premise behind a tiering structure is to establish a resource baseline for VMs running various types of software. By setting a baseline, it provides a way to predict how many VMs can be provisioned to a particular host.

In a previous article, I detailed how my organization tiers VMs in order to predict how many guests can fit in a hardware configuration. Below are the results for a physical host with two quad-core processors, 64 GB of RAM and approximately 1 TB of disk space, connected by 4 GB Fibre Channel.


Tier A virtual machines (VMs)
Tier B VMs
Tier C VMs
VMs per host
(1/2 RAM 2 GB host reserve)
(1/3 RAM 4 GB host reserve)
(1/4 RAM 4 GB host reserve>
CPU average utilization
RAM utilization (max)
2 GB
3 GB
4 GB
Disk space utilization (max)
35 GB
50 GB
100 GB
Disk I/O
Network average utilization
Example workload
Web, print, file, small
application servers
Low transactional
databases,larger file
servers, medium
resource application servers
Database, terminal/Citrix,
larger application
servers, domain controller

Note: These tiers emerged from my work with Hyper-V. If you use another hypervisor, the results may differ. Regardless, the assertions are still valid.

Work with your vendors

For infrastructure servers, this is a particularly easy structure to follow. But for vendor applications, I may not follow their specifications when creating a VM tier. You should understand that a vendor's philosophy is to ensure that recommended hardware is not a hindrance to their application's performance; and at times, the recommended resources may be over-exaggerated.

So before you purchase an application, I would suggest having an open conversation with the vendor. Request for a real-world example of how their application works in a similar environment, or ask to speak with another customer currently running the application. From my experience, both scenarios enable me to allocate fewer resources than originally proposed -- at times, by half the recommended amount.

This should not be taken as a rule, however. But the point is you can start your deployment with a less aggressive resource allocation than proposed. The beauty of server virtualization comes into play if you determine, through monitoring, that an application needs more resources, you can provide them in the amount of time it takes a system to reboot. While you should not intend to undercut the necessary resources for an application, this approach can help streamline the goals of your application, virtual environment and organization.

Ultimately, to maintain a healthy and efficient virtual environment, you need to monitor the resources of every VM periodically. Also, be prepared to discuss -- or even confront -- vendors on the resources needed for your particular environment. Starting at an agreed-upon baseline and paying close attention to the tiers each VM fall into will help you predict the most efficient resource utilization of your host systems; thus, giving your virtual environment the best chance to be successful.

About the author:
Rob McShinsky is a senior systems engineer at Dartmouth Hitchcock Medical Center in Lebanon, N.H., and has more than 12 years of experience in the industry -- including a focus on server virtualization since 2004. He has been closely involved with Microsoft as an early adopter of Hyper-V and System Center Virtual Machine Manager 2008, as well as a customer reference. In addition, he blogs at VirtuallyAware.com, writing tips and documenting experiences with various virtualization products.

Dig Deeper on Challenges of server virtualization