In a recent post about demystifying QoS for the service provider, I explained the multiple “techniques” used by different storage vendors in order to overcome the problems of noisy neighbors in a multi-tenant mixed-workload environment.
The challenge with the noisy neighbor problem is one of control — or the lack thereof. When an uncontrolled application (or volume) starts consuming large amounts of IOPS, it often “steals” performance from all the other applications running on the same infrastructure, causing those same apps to behave unpredictably or slowly.
In an attempt to curb the effects of the noisy neighbor, rate (or maximum) limiting techniques have been implemented by a number of storage vendors with varying degrees of success. The challenge with rate limiting techniques is that they only provide application management — at best. What is actually needed is application control — there is a big difference!
Application management is where a limit is used to throttle performance, but this technique has a knock-on effect on all the other applications in the same array.
Application control, on the other hand, is where the allowable performance requirements for any individual application are bound by hard limits that when implemented do not allow other apps or volumes to be affected.
With this in mind, the only way to effectively control an application such that it won’t affect others on the same infrastructure is to implement a 3-dimensional Quality of Service where maximum, burst, and guaranteed minimum IOPS limits are set.
The way I like to visualize 3-dimensional QoS is in this graphic below:
The concept is that for real Quality of Service — one that provides complete performance control — an application is completely bound by hard limits in each of the 3 dimensions required … max, min, and burst.
With this construct in place, it is easy to see that because an application cannot “escape” from its individual performance limits, applications can be “stacked” side by side and run independently … allowing true workload consolidation.
So in order to achieve predictable, repeatable consolidation of mixed disparate workloads and consistently do this at scale, application control is a must. Application management just won’t cut it.
As a wise man from one of the leading US service providers once said, “Any form of QoS that uses the word ‘quality’ but does not have control doesn’t deserve to be called quality of service at all.”
So the question is … are you really getting true Quality of Service?