[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