[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH V2] qemu-img: make convert async
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [PATCH V2] qemu-img: make convert async |
Date: |
Mon, 27 Feb 2017 21:37:44 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Am 27.02.2017 um 12:03 hat Peter Lieven geschrieben:
> the convert process is currently completely implemented with sync operations.
> That means it reads one buffer and then writes it. No parallelism and each
> sync
> request takes as long as it takes until it is completed.
>
> This can be a big performance hit when the convert process reads and writes
> to devices which do not benefit from kernel readahead or pagecache.
> In our environment we heavily have the following two use cases when using
> qemu-img convert.
>
> a) reading from NFS and writing to iSCSI for deploying templates
> b) reading from iSCSI and writing to NFS for backups
>
> In both processes we use libiscsi and libnfs so we have no kernel cache.
>
> This patch changes the convert process to work with parallel running
> coroutines
> which can significantly improve performance for network storage devices:
>
> qemu-img (master)
> nfs -> iscsi 22.8 secs
> nfs -> ram 11.7 secs
> ram -> iscsi 12.3 secs
>
> qemu-img-async (8 coroutines, in-order write disabled)
> nfs -> iscsi 11.0 secs
> nfs -> ram 10.4 secs
> ram -> iscsi 9.0 secs
>
> This patches introduces 2 new cmdline parameters. The -m parameter to specify
> the number of coroutines running in parallel (defaults to 8). And the -W
> paremeter to
> allow qemu-img to write to the target out of order rather than sequential.
> This improves
> performance as the writes do not have to wait for each other to complete.
>
> Signed-off-by: Peter Lieven <address@hidden>
Thanks, applied to the block branch.
Kevin