
On Fri, Jun 04, 2010 at 08:23:32AM -0600, Eric Blake wrote:
On 06/04/2010 02:28 AM, Daniel P. Berrange wrote:
On Thu, Jun 03, 2010 at 11:57:33PM -0400, Laine Stump wrote:
See https://bugzilla.redhat.com/show_bug.cgi?id=599091
Saving a paused 512MB domain took 3m47s with the old block size of 512 bytes. Changing the block size to 1024*1024 decreased the time to 56 seconds. (Doubling again to 2048*1024 yielded 0 improvement; lowering to 512k increased the save time to 1m10s, about 20%)
Surely we should have gone for 1024*1024 in this case ?
NB, since our XML header gets rounded up to a multiple of the block size, smaller is better, because we're filling the disk with zeros here :-)
In that case, it may be better to have two constants - the preferred transfer size (1M), and the XML padding block size (512 as before, or perhaps 4k given newer disk architectures that prefer 4k), along with code that allows the final transfer to be shorter than the preferred size so long as it is still a multiple of the block size.
That doesn't work because dd can't seek into the file a size less than its transfer size. ie the seek=NN parameter is specifying a multiple of the bs=XX value, not an absolute seek position in bytes. Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|