Gmirror performanc

Guido van Rooij guido at gvr.org
Wed Oct 25 21:11:57 UTC 2006


On Wed, Oct 25, 2006 at 03:50:04PM +0200, Oliver Fromme wrote:
> Guido van Rooij wrote:
>  > Anyway, I created a gm device and a partition. Now the read performance
>  > is not what I'd expect.
>  > I have the partition on two SATA devices on different controlers.
>  > I get around 60MB/s for each disk. I can get that speed from both disks
>  > simultaneously.
>  > Now when I dd from the gm device, I don't get any speed higher than that.
> 
> That's expected.

I do not agree.

> 
>  > I tried with -b split -s <various sizes>, -b round-robin, -b load.
>  > (dd-ing as done with a bs of 1m; I see the transaction size is 128Kb,
>  > unless the split method is used, in which case the transaction size
>  > gies down. When round-robin is used, the transaction size is 128Kb/s,
>  > but the number of transaction per second goes down.).
>  > 
>  > I cannot explain why I should not get a higher read speed. Anyone?
> 
> dd is a sequential, single-threaded operation, so it will
> only use one disk at a time.  It's not really suitable as
> a benchmark for real-world things.

I never argued that.

> 
> In the real world [TM] you have multiple processes that
> access the file system at random.  Here you will benefit
> from the mirror, because accesses will be distributed
> among the disks.

But a single-threaded process accessing a large file should also be
able to see a speed increase. I really do not see why a split or roundrobin
approach to a mirror would get only half the performance of a raw access
to a non-mirror. Somehow there must a limit of 128KB of outstanding requests.
That limit is software imposed and should IMHO scale with the number of
spindles in a mirror...

-Guido
that can be 


More information about the freebsd-stable mailing list