[dm-devel] dm-thin vs lvm performance
Joe Thornber
thornber at redhat.com
Fri Jan 20 17:03:35 UTC 2012
Hi Jagan,
On Wed, Jan 18, 2012 at 11:30:54AM -0800, Jagan Reddy wrote:
> Joe,
> Thanks for looking into the issue and running the tests and suggesting to use "direct" flag. I do see a difference with "direct" flag using dd. However the difference is significant when using bs=64M compared to bs=4k.
I've spent a couple of days tinkering with aio-stress and thinp on
ramdisks. More tests can be found here:
https://github.com/jthornber/thinp-test-suite/blob/master/ramdisk_tests.rb
It appears that wiping the device (ie. to ensure total allocation) is
causing the issue, and what's more this is a more general problem than
just thinp.
For instance see this test:
def test_linear_aio_stress
linear_table = Table.new(Linear.new(@volume_size, @data_dev, 0))
@dm.with_dev(linear_table) do |linear_dev|
aio_stress(linear_dev)
wipe_device(linear_dev) # cause slow down
aio_stress(linear_dev)
end
end
For me, the first run of aio_stress manages a throughput of ~9G/s.
After the wipe, which is just a simple dd across the device,
performance drops to ~5.5 G/s. Also throughput on the device under
the linear target also drops. Permanently.
I don't know if this is specific to aio, or a more general slowdown.
Once we have got to the bottom of this I've written a couple of
experimental patches that we can try to boost read performance
further.
- Joe
More information about the dm-devel
mailing list