blk-iolatency: use a percentile approache for ssd's
authorJosef Bacik <josef@toxicpanda.com>
Fri, 28 Sep 2018 17:45:42 +0000 (13:45 -0400)
committerJens Axboe <axboe@kernel.dk>
Fri, 28 Sep 2018 17:47:31 +0000 (11:47 -0600)
commit1fa2840e56f9032e14a75fcf67edfe0f21102e4b
tree8a4fa641b207b2dd864cd62302ccb91f582ec74e
parent22ed8a93adc7a9cbb2c0a0fc1d7f10068a1f84c1
blk-iolatency: use a percentile approache for ssd's

We use an average latency approach for determining if we're missing our
latency target.  This works well for rotational storage where we have
generally consistent latencies, but for ssd's and other low latency
devices you have more of a spikey behavior, which means we often won't
throttle misbehaving groups because a lot of IO completes at drastically
faster times than our latency target.  Instead keep track of how many
IO's miss our target and how many IO's are done in our time window.  If
the p(90) latency is above our target then we know we need to throttle.
With this change in place we are seeing the same throttling behavior
with our testcase on ssd's as we see with rotational drives.

Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-iolatency.c