[dm-devel] [PATCH] multipath-tools: add info to man page for the historical-service-time path selector
Martin Wilck
mwilck at suse.com
Tue Jul 7 23:55:46 UTC 2020
On Tue, 2020-07-07 at 17:44 -0400, Gabriel Krisman Bertazi wrote:
> Xose Vazquez Perez <xose.vazquez at gmail.com> writes:
>
> > Cc: Khazhismel Kumykov <khazhy at google.com>
> > Cc: Gabriel Krisman Bertazi <krisman at collabora.com>
> > Cc: Martin Wilck <mwilck at suse.com>
> > Cc: Benjamin Marzinski <bmarzins at redhat.com>
> > Cc: Christophe Varoqui <christophe.varoqui at opensvc.com>
> > Cc: DM-DEVEL ML <dm-devel at redhat.com>
> > Signed-off-by: Xose Vazquez Perez <xose.vazquez at gmail.com>
> > ---
> > multipath/multipath.conf.5 | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/multipath/multipath.conf.5
> > b/multipath/multipath.conf.5
> > index 05a5e8ff..6e637769 100644
> > --- a/multipath/multipath.conf.5
> > +++ b/multipath/multipath.conf.5
> > @@ -205,6 +205,10 @@ of outstanding I/O to the path.
> > (Since 2.6.31 kernel) Choose the path for the next bunch of I/O
> > based on the amount
> > of outstanding I/O to the path and its relative throughput.
> > .TP
> > +.I "historical-service-time 0"
> > +(Since 5.8 kernel) Choose the path for the next bunch of I/O based
> > on the shortest
> > +time by comparing estimated service time (based on historical
> > service
> > time).
> Hi,
>
> Thanks for doing this.
>
> What about:
>
> Choose the path for the next bunch of IOs through an estimation of
> future service time based on the history of previous I/O submitted to
> each path, in an attempt to maximize throughput. A path's service-
> time
> is loosely defined as the time between an IO start and its completion
> and is updated through an exponential moving average (EMA) of the
> historical service time of each path.
This is a too lengthy compared to the text we provide for the other
policies. I would suggest using just the first sentence:
> (Since 5.8 kernel) Choose the path for the next bunch of IOs through
an estimation of
> future service time based on the history of previous I/O submitted to
> each path.
If you want to provide more detail, add a link to the documentation of
the kernel feature, or provide a separate man page. multipath.conf(5)
is too big already.
> It supports some parameters, shouldn't they be documented here?
Yes, definitely. Please add the parameter definitions.
> Some
> explanation for the parameters exists in hst_create() in the kernel
>
> /*
> * Arguments: [<base_weight> [<threshold_multiplier>]]
> * <base_weight>: Base weight for ema [0, 1024) 10-bit fixed
> point. A
> * value of 0 will completely ignore any history.
> * If not given, default (HST_FIXED_95) is used.
> * <threshold_multiplier>: Minimum threshold multiplier for paths
> to
> * be considered different. That is, a path is
> * considered different iff (p1 > N * p2) where p1
> * is the path with higher service time. A
> threshold
> * of 1 or 0 has no effect. Defaults to 0.
> */
This is way too technical, hard to understand even for developers. What
is HST_FIXED_95? What is the time unit for EMA (IOW, can we relate the
base weight to a half-life time somehow)? Why would I want to use N !=
0, what effect does it have in practice? I guess we should simply
provide the parameter names and recommended values to give users a head
start, and provide a link to a description of the algorithm for users
who want to know the details.
Please send an updated patch.
Martin
More information about the dm-devel
mailing list