[Linux-cluster] DDraid benchmarks (epilogue)

Daniel Phillips phillips at redhat.com
Fri Apr 1 05:48:01 UTC 2005


I looked into the cause of the ddraid oops noted in the earlier 
benchmark posting.  It turned out to be just the fact that nothing 
prevents the dm device from being removed while there is still deferred 
timer IO pending.  I filled out the missing benchmark table entries by 
just not removing the device.

the correct fix is probably to teach ddraid's destroy method to wait 
patiently until all the child events complete.  Alternatively, we could 
think about a higher level dm mechanism that understands how to wait 
for pending events other than just IO transfers before calling the 
destroy method.  Or I can just hack this into the destroy method for 
now and think about lifting it up into device mapper later.

Anyway, the missing numbers are for all overhead enabled on the ddraid 
order 2, in other words, the most interesting numbers.  The overheads 
in question are the parity calculations (calc) and the shared 
persistent dirty log (sync).  We see that in this case ddraid finishes 
the tar test dead even with IO to the raw disk.  But ddraid is doing 
more of course, it is running the dirty log, futzing with bio vectors 
and calculating parity on read and write.  So the dirty log is very 
efficient, even in the lots-of-small-transfers case.

In the nonfragmented IO case, ddraid does very well, as before.  Even 
with the dirty logging, ddraid order 2 is more than twice as fast as a 
single raw disk.

--------------------
untar linux-2.6.11.3
--------------------

raw scsi disk
process: real 48.994s user 45.526s sys 3.063s
umount:  real  3.084s user  0.002s sys 0.429s

ddraid order 1, no calc, no sync
process: real 49.942s user 46.328s sys 3.028s
umount:  real  2.034s user  0.005s sys 0.626s

ddraid order 1, calc, no sync
process: real 50.864s user 46.221s sys 3.195s
umount:  real  1.839s user  0.006s sys 1.099s

ddraid order 1, calc, sync
process: real 50.979s user 46.382s sys 3.222s
umount:  real  1.895s user  0.002s sys 0.531s

ddraid order 2, no calc, no sync
process: real 49.532s user 45.837s sys 3.145s
umount:  real  1.318s user  0.004s sys 0.718s

ddraid order 2, calc, no sync
process: real 49.742s user 45.527s sys 3.135s
umount:  real  1.625s user  0.004s sys 1.054s

ddraid order 2, no calc, sync
process: real 50.620s user 46.285s sys 3.122s
umount:  real  1.293s user  0.003s sys 1.103s

ddraid order 2, calc, sync
process: real 50.832s user 46.495s sys 3.084s
umount:  real  1.437s user  0.004s sys 0.787s

---------------------------------
cp /zoo/linux-2.6.11.3.tar.bz2 /x
---------------------------------

raw scsi disk
process: real 0.258s user 0.008s sys 0.236s
umount:  real 1.019s user 0.003s sys 0.032s

raw scsi disk (again)
process: real 0.264s user 0.013s sys 0.237s
umount:  real 1.053s user 0.005s sys 0.029s

raw scsi disk (again)
process: real 0.267s user 0.018s sys 0.233s
umount:  real 1.019s user 0.006s sys 0.028s

ddraid order 1, calc, no sync
process: real 0.267s user 0.007s sys 0.243s
umount:  real 0.568s user 0.006s sys 0.250s

ddraid order 1, no calc, sync
process: real 0.267s user 0.011s sys 0.240s
umount:  real 0.608s user 0.002s sys 0.032s

ddraid order 1, calc, sync
process: real 0.265s user 0.008s sys 0.239s
umount:  real 0.596s user 0.004s sys 0.042s

ddraid order 2, no calc, no sync
process: real 0.266s user 0.013s sys 0.234s
umount:  real 0.381s user 0.004s sys 0.049s

ddraid order 2, calc, no sync
process: real 0.269s user 0.010s sys 0.239s
umount:  real 0.392s user 0.004s sys 0.201s

ddraid order 2, no calc, sync
process: real 0.261s user 0.004s sys  0.244s
umount:  real 0.437s user 0.003s sys  0.195s

ddraid order 2, calc, sync
process: real 0.266s user 0.009s sys 0.240s
umount:  real 0.441s user 0.007s sys 0.026s




More information about the Linux-cluster mailing list