Every day I run into customers that have set up constraints within the data center, and the dialogue is always the same.
Me: “Why do you have this constraint Mr/Mrs. Customer?”
Customer: “Because I want to make sure that X group of applications gets all the resources they need.”
Me: “Well what about all the other applications that can’t get what they need? Are they not important?”
Customer: “Well yes they’re pretty important too, but sometimes Y group of people just have to suffer a little bit more…”
The sad state of IT management today is that engineers have to set up constraints within the environment to assure that the most critical workloads get all the resources they need, think Exchange. And, in setting up this architecture workloads that are only slightly less critical but by no means unimportant get neglected, think app development. This isn’t our fault as IT engineers, rather it’s a failure of the tools that have been presented to us to-date. These tools are not able to adequately assure application performance within the virtual environment.
By creating these constraints we are able to reduce complexity within the environment. For example, if we have a nine host cluster with a variety of workloads within it we now have to manage placement, sizing, and capacity decisions within the cluster. To make these decisions we have to take into account a variety of performance impacting factors including Mem, CPU, Ready Queues, IOPS, latency, etc. As we start taking into account more and more factors this complexity becomes impossible to manage.
If we break that nine host cluster into three smaller clusters and only place similar workloads within the cluster it reduces the complexity in the environment. But, with that move to smaller clusters we have at the very least significantly decreased data center efficiency. By reducing our ability to place VMs freely within the environment we also introduce a wide variety of performance bottle necks. By breaking down one large cluster into smaller clusters we arrive at a point where we achieve a potential performance risk reduction at the expense of reduced efficiency with a potential performance risk increase due to lack of capacity. This situation is again nearly impossible to manage effectively.
This exact situation is where VMTurbo comes to the rescue. VMTurbo understands all of the relationships within the virtual environment, and through use of the Economic Scheduling Engine automatically makes sizing, placement, and capacity decisions within the environment. This software defined control system allows administrators to safely remove constraints and assure application performance.
Let’s look at a recent example from a customer testing out VMTurbo. The customer had setup a cluster that limited the developers to two “high performing” hosts in order to assure performance. They also broke out individual clusters for Exchange and another for web applications. Even though there were plenty of compute resources within the environment they were still unable to assure performance for the developers and identified slow response time as a major pain point for the business. Here’s what the environment looked like before VMTurbo.
We can instantly tell that the Exchange cluster was well underutilized, however HA policies prevented removal of a host for another purpose. Additionally, VMTurbo identified high risk within the development cluster that was identified as a pain point for the business.
The VMTurbo team identified these pain points and began having a conversation just as the one above. VMTurbo was able to demonstrate through the planning functionality that by merging the three clusters together we could significantly reduce risk for the developers while assuring performance of Exchange and the web applications.
This new configuration significantly reduced overall risk within the environment while assuring that all applications have access to the resources they need. By allowing VMTurbo to take actions automatically and constantly maintain the environment, the customer is able make sure that even as workload utilization changes the overall environment stays in a healthy state. In addition to making decisions about the placement of virtual machines on physical host VMTurbo makes sizing and capacity decisions in order that all application workloads have the resources they need.
By eliminating cluster boundaries more resources became available for all of the nearly 200 workloads running within the environment. Controlling the placement, sizing, and capacity decisions for all of these workloads is an impossible task even for a well-seasoned virtualization engineer. There are tens of thousands of decisions to be made at any point in time, and the environment is constantly changing. Traditional thought tries to silo resources in order to try to make these decisions more manageable, but this thought also introduces performance limiting constraints. VMTurbo introduces software defined control in order to help safely lift constraints within the environment to assure the performance of all application workloads.
This article is about performance. Read more like it at the Performance, Efficiency, Agility series.