public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ric Wheeler <ric@emc.com>
To: Jens Axboe <jens.axboe@oracle.com>
Cc: Arjan van de Ven <arjan@infradead.org>,
	"Phetteplace, Thad (GE Healthcare,
	consultant)"  <Thad.Phetteplace@ge.com>,
	linux-kernel@vger.kernel.org
Subject: Re: Bandwidth Allocations under CFQ I/O Scheduler
Date: Tue, 17 Oct 2006 10:37:06 -0400	[thread overview]
Message-ID: <4534EA92.3090609@emc.com> (raw)
In-Reply-To: <20061017132312.GD7854@kernel.dk>

Jens Axboe wrote:
> On Tue, Oct 17 2006, Arjan van de Ven wrote:
> 
>>On Mon, 2006-10-16 at 16:46 -0400, Phetteplace, Thad (GE Healthcare,
>>consultant) wrote:
>>
>>>The I/O priority levels available under the CFQ scheduler are
>>>nice (no pun in intended), but I remember some talk back when
>>>they first went in that future versions might include bandwidth
>>>allocations in addition to the 'niceness' style.  Is anyone out
>>>there working on that?  If not, I'm willing to hack up a proof
>>>of concept... I just wan't to make sure I'm not reinventing
>>>the wheel.
>>
>>
>>Hi,
>>
>>it's a nice idea in theory. However... since IO bandwidth for seeks is
>>about 1% to 3% of that of sequential IO (on disks at least), which
>>bandwidth do you want to allocate? "worst case" you need to use the
>>all-seeks bandwidth, but that's so far away from "best case" that it may
>>well not be relevant in practice. Yet there are real world cases where
>>for a period of time you approach worst case behavior ;(
> 
> 
> Bandwidth reservation would have to be confined to special cases, you
> obviously cannot do it "in general" for the reasons Arjan lists above.
> So you absolutely have to limit any meta data io that would cause seeks,
> and the file in question would have to be laid out in a closely
> sequential fashion. As long as the access pattern generated by the app
> asking for reservation is largely sequential, the kernel can do whatever
> it needs to help you maintain the required bandwidth.
> 
> On a per-file basis the bandwidth reservation should be doable, to the
> extent that generic hardware allows.

I agree - bandwidth allocation is really tricky to do in a useful way.

On one hand, you could "time slice" the disk with some large quanta as 
we would do with a CPU to get some reasonably useful allocation for 
competing, streaming workloads.

On the other hand, this kind of thing would kill latency if/when you hit 
any synchronous writes (or cold reads).

One other possible use for allocation is throttling a background 
workload (say, an interative checker for a file system or some such 
thing) where the workload can run effectively forever, but should be 
contained to not interfere with foreground workloads. A similar time 
slice might be used to throttle this load done unless there is no 
competing work to be done.





  reply	other threads:[~2006-10-17 14:37 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-16 20:46 Bandwidth Allocations under CFQ I/O Scheduler Phetteplace, Thad (GE Healthcare, consultant)
2006-10-17  1:24 ` Arjan van de Ven
2006-10-17 13:23   ` Jens Axboe
2006-10-17 14:37     ` Ric Wheeler [this message]
2006-10-17 14:47       ` Jens Axboe
2006-10-17 14:46     ` Phetteplace, Thad (GE Healthcare, consultant)
2006-10-18  8:00     ` Jakob Oestergaard
2006-10-18  9:40       ` Arjan van de Ven
2006-10-18 11:30         ` Jakob Oestergaard
2006-10-18 11:49           ` Jens Axboe
2006-10-18 12:23             ` Jakob Oestergaard
2006-10-18 12:42               ` Alan Cox
2006-10-18 12:44                 ` Jens Axboe
2006-10-18 12:55                   ` Nick Piggin
2006-10-18 13:04                     ` Jens Axboe
2006-10-18 13:39                       ` Jakob Oestergaard
2006-10-18 13:51                       ` Paulo Marques
2006-10-19 12:22                         ` Jens Axboe
2006-10-18 13:37                     ` Jakob Oestergaard
2006-10-18 12:44                 ` Jakob Oestergaard
2006-10-18 12:42               ` Jens Axboe
2006-10-18 13:35                 ` Jakob Oestergaard
2006-10-18  9:51       ` Jens Axboe
2006-10-18 11:00         ` Helge Hafting
2006-10-18 11:14           ` Jens Axboe
2006-10-18 11:23           ` Ric Wheeler

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=4534EA92.3090609@emc.com \
    --to=ric@emc.com \
    --cc=Thad.Phetteplace@ge.com \
    --cc=arjan@infradead.org \
    --cc=jens.axboe@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox