It is well known that the latency of a request can vary from a
fraction of a millisecond to tens of milliseconds, based on its
location compared to previous requests, as well as caching policies at the
array.
Variability in seek and rotational delays can cause an order of
magnitude difference in service times. This makes it difficult to
estimate the baseline IO latency corresponding to the latency with no
queuing delay. Thus a sudden change in average latency or in the ratio
of current values to the previous average may or may not be a signal
for overload. Instead, we look at average latency values in
comparison to a latency threshold
to predict congestion. The
assumption is that latencies observed during congestion will have a
large queuing delay component, outweighing increases due to
workload changes (e.g., sequential to random).
Ajay Gulati
2009-01-14