The present
system and associated method resolve the problem of providing statistical performance guarantees for applications generating streams of read / write accesses (I / Os) on a shared, potentially distributed storage
system of finite resources, by initiating throttling whenever an I / O
stream is receiving insufficient resources. The severity of throttling is determined in a dynamic, adaptive way at the storage subsystem level. Global, real-time knowledge about I / O streams is used to apply controls to guarantee
quality of service to all I / O streams, providing
dynamic control rather than reservation of bandwidth or other resources when an I / O
stream is created that will always be applied to that I / O
stream. The present
system throttles at control points to distribute resources that are not co-located with the
control point. A competition model is used with
service time estimators in addition to estimated
workload characteristics to determine which I / O needs to be throttled and the level of throttling required. A decision point issues throttling commands to
enforcement points and selects which streams, and to what extent, need to be throttled.