gvinum raid5 performance seems slow

Greg 'groggy' Lehey grog at FreeBSD.org
Mon Oct 30 05:19:24 UTC 2006


On Monday, 30 October 2006 at  7:11:29 +0200, Petri Helenius wrote:
> Greg 'groggy' Lehey wrote:
>>
>> Single stream tests aren't very good examples for RAID-5, because it
>> performs writes in two steps: first it reads the old data, then it
>> writes the new data.
>
> If it really does it this way, instead doing write-only when writing
> sufficiently large blocks, that would explain the performance due to
> double rotational latency wait for each stripe size.

No, this works at the bio layer, where everything is cushioned on
buffer cache.

> Most implementations also use read/write caches to optimize this
> even further.

"Sufficiently large data blocks" equates to several megabytes.
Currently MAXPHYS, the largest transfer request that would get to the
bio layer, is 131072 bytes.  This would imply a stripe size of not
more than 32 kB for a five disk array, which is unrealistically small.

I did consider this optimization, but it would only work if Vinum were
first to buffer multiple requests, and there are all sorts of
reliability issues there.  For example, you'd have to lie about the
first few requests that were only buffered and not actually sent out
to disk.  Possibly it should be done anyway.

Greg
--
See complete headers for address and phone numbers.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-performance/attachments/20061030/00531e8f/attachment.pgp


More information about the freebsd-performance mailing list