Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 31 Mar 2008 23:09:03 +0200
From:      "Ivan Voras" <ivoras@freebsd.org>
To:        "Scott Long" <scottl@samsco.org>
Cc:        freebsd-current@freebsd.org
Subject:   Re: Are large RAID stripe sizes useful with FreeBSD?
Message-ID:  <9bbcef730803311409ha25effam9dd522c9084783ad@mail.gmail.com>
In-Reply-To: <47F147D8.3030905@samsco.org>
References:  <fsr7fb$hl0$1@ger.gmane.org> <47F147D8.3030905@samsco.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 31/03/2008, Scott Long <scottl@samsco.org> wrote:
> Ivan Voras wrote:
>  > Most of new hardware RAID controllers offer stripe sizes of 128K, 256K
>  > and some also have 512K and 1M stripes. In the simplest case of RAID0 of
>  > two drives, knowing that the data is striped across the drives and that
>  > FreeBSD issues IO request of at most 64K, is it useful to set stripe
>  > sizes to anything larger than 32K? I suppose something like TCQ would
>  > help the situation but does anyone know how is this situation usually
>  > handled on the RAID controllers?
>
> Large I/O sizes and large stripe sizes only benefit benchmarks and a
>  narrow class of real-world applications.

Like file servers on gigabit networks serving large files? :)

>  Large stripes have the
>  potential to actually hurt RAID-5 performance since they make it
>  much harder for the card to a full stripe replacement instead of a
>  read-modify-xor-write.

This is logical.

>  I hate to be all preachy and linux-like and tell you want you need or
>  don't need, but in all honesty, large i/o's and stripes usually
>  don't help typical filesystem-based mail/squid/mysql/apache server
>  apps.  I do have proof-of-concept patches to allow larger I/O's for
>  selected controllers on 64-bit FreeBSD platforms, and I intend to clean
>  up and commit those patches in the next few weeks (no, I'm not ready for
>  nor looking for testers at this time, sorry).

I'm not (currently) nagging for large IO request patches :) I just
want to understand what is happening currently if the stripe size is
256 kB (which is the default at least on IBM ServeRAID 8k, and I think
recent CISS controllers have 128 kB), and the OS chops out IO in 64k
blocks. I have compared Linux performance and FreeBSD performance and
I can't conclude from that - for FreeBSD it's not like all requests
(e.g. 4 64 kB requests) go to a single drive at a time, and it's not
like they always get split.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9bbcef730803311409ha25effam9dd522c9084783ad>