When you look at VM sizing and how that size affects capacity, an entire collection of questions and topics come...
to mind. A single point, though, should always be paramount: VMs are not free.
Because VMs are so easy to create, the notion has sprung up that they can be put in action at no cost. This mistaken idea is at the root of VM overprovisioning and sprawl; the sooner it is forgotten, the sooner you have a chance to successfully plan and size your infrastructure's capacity.
Predefined categories simplify VM sizing
One of the first steps to capacity planning is to understand your workloads. Workload types vary, from databases -- which require lots of memory -- to transactional loads which are more CPU-intensive. While your organization will most likely have a mix of workloads, you should be able to create categories into which your VMs will fit.
Without a category for the VM, a system administrator or application owner needs to decide how large or small the VM should be. This can be daunting. The typical application owner or system administrator may not know or understand where their needs fit into the grand scheme. Unfortunately, when faced with the unknown, a person will be naturally inclined to assume that bigger is better. By themselves, categories will not correct the mind-set that VMs are free, but they will help to contain the problem.
The goal is not to create a different category for every workload, but to instead establish a set of categories that will suit your environment. The number of categories an organization needs will depend on its business type and needs. Just remember that too few categories will make it easy to oversize or undersize VMs, and too many categories will be nearly impossible to manage.
Establish your VM sizing categories
As a general guideline, VMs tend to fit into a few natural categories: the memory-hungry, the CPU-intensive and the storage-focused. Creating a small, medium and large option in those three categories allows for nine possible configurations that will fit more of your VMs.
Aligning category information with performance baselines lets you show why it makes sense to place a VM in a particular category. When you have data that shows a workload can run in a small or medium tier without performance issues, you can start to change the perception that a bigger VM is always better.
Proper VM sizing and placement is only possible if you carefully monitor what you have in your virtual environment and what you plan to bring in next. Simply creating a baseline of a small VM with one vCPU, 4 GB of RAM and 20 GB of storage space has little value if most of your VMs have two vCPUs or 6 GB of RAM or higher.
Predefined charts are available, showing recommended VM placement. Those will be fine if you happen to run the exact same applications with the same sized hosts. In reality, of course, applications and environments are unique to each business, so we need to set our own standards. The good news is that this is fairly simple to accomplish.
Using a simple bell curve based on your VM baselines, you can determine a middle range into which the majority of your VMs will fall.
This helps you to establish a category system of small, medium and large machines based on your unique environment and not simply a collection of configurations from an environment that may not fit your specific business needs and challenges. Ideally, the majority of your VMs should fall within the medium category. This allows you to handle any potential growth.
Rooting out improperly sized VMs
The bell curve works great for virtual machine categories -- as long as you're working with accurate data. What happens if you have existing machines that are improperly sized to begin with? If you apply the bell curve to the existing data, you will create a set of categories that is misaligned with what you actually need. This can produce more damage than benefit.
Fortunately, many monitoring tools now look beyond what is simply assigned. These tools can measure the resources a VM is actually using, not simply what's allocated. This sizing exercise becomes the key to success, giving a clear picture of the actual resource use and allowing you to create categories based on actual data.
Still, this clear insight into what is being used doesn't mean you should skip general housekeeping. By taking advantage of a few best practices, you can prepare VMs for accurate baselines.
Capacity planning and VM sizing is not a single golden chart that applies to all of your VMs. An environment is unique to that business and its applications. A framework of categories, though, will help guide your environment into an optimized infrastructure through the use of accurate monitoring data, reduced overallocation and general cleanup.
Five tips to ease VM provisioning
Ease provisioning with VM templates
How PowerShell can speed up VM deployment