All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Benjamin Marzinski" <bmarzins@redhat.com>
To: device-mapper development <dm-devel@redhat.com>
Cc: lsf@lists.linux-foundation.org, Jeff Moyer <jmoyer@redhat.com>,
	Mike Snitzer <snitzer@redhat.com>
Subject: Re: [Lsf] dm-mpath request merging concerns [was: Re: It's time to put together the schedule]
Date: Mon, 23 Feb 2015 12:34:22 -0600	[thread overview]
Message-ID: <20150223183422.GU11463@ask-08.lab.msp.redhat.com> (raw)
In-Reply-To: <54EB60EC.6080706@cs.wisc.edu>

On Mon, Feb 23, 2015 at 11:18:36AM -0600, Mike Christie wrote:
> On 2/23/15, 7:50 AM, Mike Snitzer wrote:
> >On Mon, Feb 23 2015 at  2:18am -0500,
> >Hannes Reinecke <hare@suse.de> wrote:
> >
> >>On 02/20/2015 02:29 AM, James Bottomley wrote:
> >>>In the absence of any strong requests, the Programme Committee has taken
> >>>a first stab at an agenda here:
> >>>
> >>>https://docs.google.com/spreadsheet/pub?key=0ArurRVMVCSnkdEl4a0NrNTgtU2JrWDNtWGRDOWRhZnc
> >>>
> >>>If there's anything you think should be discussed (or shouldn't be
> >>>discussed) speak now ...
> >>>
> >>Recently we've found a rather worrysome queueing degradation with
> >>multipathing, which pointed to a deficiency in the scheduler itself:
> >>SAP found that a device with 4 paths had less I/O throughput than a
> >>system with 2 paths. When they've reduced the queue depth on the 4
> >>path system they managed to increase the throughput somewhat, but
> >>still less than they've had with two paths.
> >
> >The block layer doesn't have any understanding of how many paths are
> >behind the top-level dm-mpath request_queue that is supposed to be doing
> >the merging.
> >
> >So from a pure design level it is surprising that 2 vs 4 is impacting
> >the merging at all.  I think Jeff Moyer (cc'd) has dealt with SAP
> >performance recently too.
> >
> >>As it turns out, with 4 paths the system rarely did any I/O merging,
> >>but rather fired off the 4k requests as fast as possible.
> >>With two paths it was able to do some merging, leading to improved
> >>performance.
> >>
> >>I was under the impression that the merging algorithm in the block
> >>layer would only unplug the queue once the request had been fully
> >>formed, ie after merging has happened. But apparently that is not
> >>the case here.
> >
> >Just because you aren't seeing merging are you sure it has anything to
> >do with unpluging?  Would be nice to know more about the workload.
> >
> 
> I think I remember this problem. In the original request based design we hit
> this issue and Kiyoshi or Jun'ichi did some changes for it.
> 
> I think it was related to the busy/dm_lld_busy code in dm.c and dm-mpath.c.
> The problem was that we do the merging in the dm level queue. The underlying
> paths do not merge bios. They just take the request sent to them. The change
> that was done to promote (I do not think we ever completely fixed the issue)
> was that normally the workload was heavy enough or the paths slow enough so
> the busy check would return true enough to cause the dm layers queue not
> dispatch requests so quickly. They then had time to sit in the dm queue and
> merge with other bios.
> 
> If the device/transport is fast or the workload is low, the multipath_busy
> never returns busy, then we can hit Hannes's issue. For 4 paths, we just
> might not be able to fill up the paths and hit the busy check. With only 2
> paths, we might be slow enough or the workload is heavy enough to keep the
> paths busy and so we hit the busy check and do more merging.

Netapp is seeing this same issue.  It seems like we might want to make
multipath_busy more aggressive about returning busy, which would
probably require multipath tracking the size and frequency of the
requests.  If it determines that it's getting a lot of requests that
could have been merged, it could start throttling how fast requests are
getting pulled off the queue, even there underlying paths aren't busy.

-Ben

> 
> --
> dm-devel mailing list
> dm-devel@redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel

  reply	other threads:[~2015-02-23 18:34 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1424395745.2603.27.camel@HansenPartnership.com>
     [not found] ` <54EAD453.6040907@suse.de>
2015-02-23 13:50   ` dm-mpath request merging concerns [was: Re: It's time to put together the schedule] Mike Snitzer
2015-02-23 17:18     ` [Lsf] " Mike Christie
2015-02-23 18:34       ` Benjamin Marzinski [this message]
2015-02-23 19:56         ` Mike Snitzer
2015-02-23 21:19           ` Benjamin Marzinski
2015-02-23 22:46             ` Mike Snitzer
2015-02-23 22:14               ` Benjamin Marzinski
2015-02-24  0:39                 ` Mike Snitzer
2015-02-24  0:38                   ` Benjamin Marzinski
2015-02-24  2:02                     ` Mike Snitzer
2015-02-24 14:35                       ` Jeff Moyer
2015-02-24 14:59                         ` Mike Snitzer
2015-02-23 19:35       ` [Lsf] " Merla, ShivaKrishna
2015-02-23 19:50       ` Mike Snitzer
2015-02-23 20:08         ` [Lsf] " Christoph Hellwig
2015-02-23 20:39           ` Mike Snitzer
2015-02-23 21:14             ` Mike Snitzer
     [not found] ` <20150223170842.GK24272@dhcp22.suse.cz>
     [not found]   ` <20150302151941.GB26343@dhcp22.suse.cz>
     [not found]     ` <1425309993.2187.3.camel@HansenPartnership.com>
     [not found]       ` <20150302152858.GF26334@dhcp22.suse.cz>
     [not found]         ` <20150302104154.3ae46eb7@tlielax.poochiereds.net>
     [not found]           ` <1425311094.2187.11.camel@HansenPartnership.com>
2015-03-08 18:11             ` RFC for small allocation failure mode transition plan (was: Re: [Lsf] common session about page allocator vs. FS/IO) It's time to put together the schedule) Michal Hocko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150223183422.GU11463@ask-08.lab.msp.redhat.com \
    --to=bmarzins@redhat.com \
    --cc=dm-devel@redhat.com \
    --cc=jmoyer@redhat.com \
    --cc=lsf@lists.linux-foundation.org \
    --cc=snitzer@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.