“How is VMTurbo different from any other tool that load balances through automated vMotions?” Anytime I am talking to a prospect on a demonstration, this question inevitably comes up in the conversation. VMTurbo often draws this comparison, and it comes down to a fundamental difference: the concept of balance versus control. Hopefully, this blog will elucidate the key difference between these two approaches to managing the virtual environment, and also how control assures application performance while also driving up utilization at the same time.
Load Balancing: One Mission and Only One Metric at a Time
With a load balancer in the environment, the administrator may believe that they are maintaining performance and keeping the environment healthy, because that is often how a load balancer is sold to them. Ultimately, however, a load balancer’s job is to do exactly what it is designed to do – balance the cluster through automated vMotions across a metric. When a load balancer looks at an environment, it attempts to move VM’s around within a cluster to balance either the metric of CPU or the metric of RAM on the hosts within that cluster. It considers one metric at a time, looking to achieve the most balanced state possible in regards to supply. Where it begins to fall short, however, is when we start to look at how balancing truly affects performance.
How Does Load Balancing Really Affect Performance?
First of all, how does balancing the cluster supply assure performance? Take, for example, CPU Ready Queue, the biggest headache metric of the administrator. When a load balancer looks to move a VM from one host to another to balance RAM, how does it understand how this VM will affect Ready Queue on the new host? What if the moved VM has 8 vCPU’s, and instantly causes Ready Queue congestion on the new host, thereby degrading performance on the new host?
The load balancer has done its job exactly as it was designed to do—RAM is now balanced between the two hosts. But the load balancer has not assured performance in the cluster because it does not understand the ramification of its decision in regards to overall performance of the cluster. To truly understand performance, we can’t just consider CPU or RAM. We must simultaneously consider all metrics within an environment.
Let’s look at another hypothetical. In a four host cluster, RAM is balanced at 85% across all hosts, and CPU is balanced at 70% across all hosts. To a load balancer, the host has reached the best performing state that it can create. But has it really assured performance? Will vMotions really keep risk of performance degradation out of this environment?
Healthy Virtual Environments Require More than Just Placement Decisions
I would say that to assure that we keep this environment performing, we must look to incorporate more than placement decisions. We could incorporate sizing decisions as well into our automatic decision-making process, and look to safely reclaim underutilized resources from VM’s to drive out risk and keep the environment in a perpetual state of health.
Alternatively, we could incorporate capacity decisions into our decision engine, so that we can understand when the demand for the resources within our environment has reached a point where it is going to begin to outstrip the underlying supply, and efficiently determine where and when we need to add hardware to keep the environment healthy.
None of this decision making process is possible when using a load balancer. A load balancer will do exactly what it has been designed to do, which is why we must look to take a different approach to truly assure performance of our environment in real time.
What Does Control Do?
A control platform will look to proactively and preventatively take decisions to keep the environment healthy in real time, focusing on the demand of the VM’s and their workloads, and matching this demand to the underlying hardware supply. It considers not just CPU and RAM on the host level, but incorporates IO, Swapping, Network Throughput, CPU Ready Queue and Ballooning in its decision-making process, as well as Latency, IOPS and Storage on the Datastore level, and VMem, VCPU and VStorage on the VM level. In addition, a control platform combines placement, sizing and capacity in its automatic decision-making process, so that it can understand the best decision to take to assure performance and health for the environment, regardless of the situation or the utilization.
Only a Control Platform Can Assure Performance
When it comes to assuring performance, a control platform will always understand what needs to be done in real time to keep the environment healthy. It will never simply look to balance the load across a cluster, because balance does not create control. VMTurbo is the only demand-driven control platform for virtual and cloud environments on the market today. If assuring application performance in real time for your environment sounds like something that you’re looking to accomplish for your environment, or you’re just curious to see balance versus control for yourself, why not give it a try?