Matt Ray (mattr), wrote another great recent post on eliminating constraints without having to sacrifice performance
Safely remove constraints in the data center
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.
Read more here