Irrespective of where you operate your virtualized environment—whether on premises or in a public cloud—you need to know how that environment performs, how much additional load it can handle, and ultimately, where there might be bottlenecks. Each company has its own best practices for governing the performance of its infrastructure operations, but it can be difficult to capture crucial metrics like usage rates in highly diversified environments. You want to know that you’re getting the most out of your IT infrastructure, both in cloud and elsewhere.
There’s no question that operating at usage rates approaching 100% offers greater value than lower rates. However, as usage levels increase, the risk of hitting a bottleneck also increases. Headroom management, in this context, takes on great importance.
But how do you measure headroom across a growing mixture of applications running on-premises, off-premises, and in the public cloud?
Building a Simple Dashboard to Start Monitoring Infrastructure
The first step is to begin monitoring your environment and assessing your risk, ability to grow, and need to optimize.
In your on-premises stack, you have to consider your hypervisor and storage array. To gain reliable information and to compare values, I typically create a simple dashboard in Cloud Insights. A dashboard is built from multiple widgets that display the information I will need to assess the current state of my environment (in this case, on-premises).
Let's focus on the hypervisor first.
Hypervisor Headroom Analysis
You can acquire the data for a number of metrics from your environment, but first you’ll need to get them into an analytics tool, such as Cloud Insights. Ezra Tingler did explain the process of collecting these metrics with Cloud Insights in his recent blog post (hint: it was relatively quick and painless).
As you might imagine, there are several methods you can employ to gain insight into your hypervisor that will allow you to forecast actual headroom in the cluster. During my time analyzing customer environments, I found that the three most reliable and frequently used methods were:
- vCPU:pCPU ratio-based headroom
- vMem:pMem ratio-based headroom
- average pCPU utilization-based headroom
For the sake of simplicity, I'm only looking into one of them.
vCPU:pCPU ratio-based Headroom
This ratio indicates how many virtual CPUs (vCPU) you have per physical CPU (pCPU). Depending on the type of applications you’re running, this ratio may differ, and continuous monitoring of overall pCPU utilization levels will help you to tweak this number to best suit your workloads. Some best practices to start with are:
- 4:1 for a standard all-purpose virtual machine (VM)
- 6:1 for typically underutilized “just sitting there” VMs
- 3:1 if your CPU usage is somewhat demanding
So how do you best calculate headroom with Cloud Insights?
To work out the number of virtual machines you can add to your environment, use this formula:
((r * A) - (B)) / C
- A = total number of pCPU
- B = total number of vCPU
- C = avg number of vCPU per VM
- r = aimed ratio we want to have
However, if I were to apply one of the other methods mentioned above, I would get a different number of additional VMs. Thus, it’s extremely important to look closely at all the possibilities and to compare them against each other.
Continuous Monitoring of Cluster Memory and CPU Usage
But headroom numbers alone aren’t enough; you need to have the rest of your cluster stack under control. Cloud Insights enables you to import both point in time information and historical data into the dashboard, like cluster memory and CPU usage trends. You can also combine multiple information types into a single widget using formulas, as in the example above.
A short overview of the most utilized clusters in terms of CPU usage and memory will do the trick in this case, but I typically also add a box plot chart to gain an overview of the top 5 busiest hosts in parallel.
Storage-based Headroom Analysis
The second most influential factor in determining how many additional VMs you can provision is storage. It doesn't matter that you have plenty of computing power available if there’s no storage for the data or the virtual OS disk of the VM.
Cloud Insights gathers data from many different storage platforms, including all NetApp platforms, along with platforms from dozens of other vendors. That information can be used to calculate available headroom.
The most common metric in storage-based headroom analysis is the available capacity of the datastore/storage pool of the storage array.
It's good to know that you have 15%-20% free space on your datastore. But what does that space mean in terms of additional VMs you can provision?
Cloud Insights looks into your datastores and gives information on:
- Provisioned capacity relative to used capacity (on virtual disk, datastore, storage pool, or LUN level)
- Average capacity used per VM
- Average capacity provisioned per VM
- Storage efficiency information (like deduplication rate, compression rate)
With that information in hand, I'm now able to look at the average provisioned capacity of each VM relative to the available capacity of currently configured datastores. I used the following formula to yield that information:
- A = Average capacity provisioned per VM
- B = Greatest amount of free capacity among datastores attached to a cluster (in gigabytes)
- r = Minimum headroom to expand existing VMs (in gigabytes)
Next Steps: Finalizing Your Dashboard to Monitor VM Usage
Once you’ve completed the above analyses to assess headroom, your next step is to finalize your Cloud Insights dashboard with all the information needed to have a complete overview of available headroom.
This new dashboard gives insight into the number of additional VMs we can provision. But Cloud Insights also gives us the ability to monitor the consumption level of our current environment, monitoring the performance of each asset in the stack up to the service level. In Cloud Insights, we can easily calculate the cost (as well as pinpoint the owner) of used assets.
Test Out Cloud Insights Free of Charge For 14-Days.
If you want to give Cloud Insights a try, sign up here. The trial is free of charge for 14 days.