lkml.org 
[lkml]   [2010]   [Jul]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC/RFT PATCH] cfq-iosched: Implement cfq group idling
    On Thu, Jul 08, 2010 at 09:39:45AM -0400, Jeff Moyer wrote:
    > Vivek Goyal <vgoyal@redhat.com> writes:
    >
    > > Currently we idle on sequential queues and allow dispatch from a single
    > > queue and that can become a bottleneck on higher end storage. For example
    > > on my HP EVA, I can run multiple sequential streams and achieve top BW
    > > of around 350 MB/s. But with CFQ, dispatching from single queue does not
    > > keep the array busy (limits to 150-180 MB/s with 4 or 8 processes).
    > >
    > > One approach to solve this issue is simply use slice_idle = 0. But this
    > > also takes away the any service differentiation between groups.
    >
    > That also takes away service differentiation between queues. If you
    > want to maintain that at all, then this is really just pushing the
    > problem to another layer.
    >

    Yes it does take away the io priority with-in group. But I think that's
    the trade-off and that's not default. So those who don't require ioprio
    stuff working with-in group and those who know that they have got
    faster storage will set slice_idle=0. For rest of the SATA users default
    is still slice_idle=8.

    So I am just creating a path so that high end storage users don't suffer.
    Previously they could easily switch to deadline. But because they also
    want to use IO control feature and deadline does not support that, we
    need to create some paths in CFQ so that it gives deadline like
    performance but also provides IO control facility.

    Because storage behavior varies so much, typically idling works very well
    on single SATA disks and with software RAIDs of SATA disks. But in my
    testing deadline is outerforming CFQ on HBA based hardware RAID and
    storage arrays. Now ideal thing to address this situation would be some
    kind of auto tuning where CFQ realizes the capability of LUN it is
    operating on and changes behavior automatically.

    But getting auto-tuning is hard, I am trying to address the issue with
    the help of tunable in a static manner. So if an admin knows the storage
    configuration, he can change the tunables statically. Once a realibale
    auto tuning infrastructure is in, we can get rid of these static paths.

    Thanks
    Vivek

    > This is the crux of my issues with CFQ. It works really well for SATA
    > disks. Once you try running it on enterprise storage, it falls flat.
    > Is it a design goal of CFQ to get it to run well on enterprise storage?
    >
    > Jens?
    >
    > Cheers,
    > Jeff


    \
     
     \ /
      Last update: 2010-07-08 15:59    [W:0.033 / U:119.508 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site