[dm-devel] [RFC PATCH] dm service time: measure service time rather than approximate it

Mike Snitzer snitzer at redhat.com
Fri Apr 8 19:03:49 UTC 2016


On Fri, Apr 08 2016 at  2:58pm -0400,
Mike Snitzer <snitzer at redhat.com> wrote:

> The DM multipath service-time path-selector has historically tracked the
> amount of outstanding IO per path and used that to approximate the
> service-time of each path.  In practice this has shown itself to work
> fairly well but we can do better by measuring the actual service-time
> during IO completion and using it as the basis for path selection.
> 
> Measuring the actual service-time is still prone to inaccuracies given
> that service-times vary with IO size.  But to counter any potential for
> drawing incorrect conclusions about the service-times of a given path
> the measured service-times are reset periodically.
> 
> This approach has provided a 10% increase in the selection of a path
> that was forcibly made to be less loaded than the alternative path.
> 
> Reported-by: Todd Gill <tgill at redhat.com>
> Signed-off-by: Mike Snitzer <snitzer at redhat.com>

It should be noted that I have not looked at the implications on actual
throughput or system load.  But I wanted to get this RFC out to see what
others thought about making dm-service-time more intuitive in its
implementation.

Junichi, it'd also be great if you could provide historic context for
why you elected to approximate the service-time based on outstanding IO
rather than measure the actual service-time of each path.

Thanks,
Mike




More information about the dm-devel mailing list