What is the best vCPU to CPU ratio to assure performance in your environment?
I recently read this very well thought out article on the best allocation of vCPU to CPU core allocation in order to assure application workload performance. There is a great analysis on acceptable levels of overprovisioning given the type of workload. My question is what is the real goal here? Typically I would argue the goal is to be able to assure the performance of the associated workloads. And, if that is the goal then we may be taking the wrong approach.
For instance a “Computation-intensive workload” is capable of an overcommit ratio of up to 6:1 with an average 3:1. But, what does that mean? It depends entirely on the workload. How many vCPUs are allocated to the VMs? If each VM has 8 vCPU you’re going to support much less density than 2 vCPUs per VM. What is the utilization characteristic? If all of the VMs use 100% of the allocated CPU all the time it wouldn’t make a whole lot of sense to provision over 1:1 not to mention 6:1.
The point is that there are a lot of factors that go into determining what the vCPU to CPU ratio should be in any given environment. And, as the workloads change and are utilized throughout the day the “magic” number changes. In reality a rule of thumb is no way to manage something as business critical as an IT environment, yet IT is one of the only industries where something as arbitrary as a rule of thumb is used.
Let’s take air travel for instance. What if I told you that it takes somewhere between a ½ tank and a full tank of fuel to get from Boston to Chicago and on average you can make it with ¾ tank depending on a lot of things? Would you feel comfortable if we decided to fill up with ¾ tank and give it a go? Or maybe you’d go conservative with the full tank to be more conservative. But, then you’d be wasting fuel. In reality airlines use advanced modeling software to determine how much fuel is needed in order to complete a journey. The software factors in a host of different metrics such as the flight time, cargo weight, plus a much appreciated safety factor in order to determine exactly how much fuel is needed to achieve the goal of making it to the destination as efficiently as possible. In other words, software is being used to make a complex decision not a rule of thumb.
Turbonomic applies the same sort of logic to the datacenter. Instead of just looking at vCPU to Core ratios to determine host density it looks at a large set of metrics that effect workload performance. This includes CPU provisioning ratios, as well as CPU utilization at both the VM and host level, and ReadyQ, and a host of other metrics around factors other than just CPU to make sure that the data center is operating in an optimal state.
By understanding the demand for resources from the virtual infrastructure, as well as the supply of resources on the physical infrastructure Turbonomic is able to make intelligent decisions around the best way to distribute workloads in order to drive up overall host densities. If VMs do not have access to all of the CPU they need to remain performant Turbonomic makes the decision to allocate more resources. And, if there is no longer supply available to meet resource demand Turbonomic makes the decision to allocate more resources.
Check out our on-demand webinar!