[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 4/5] qcow2: add zstd cluster compression
From: |
Markus Armbruster |
Subject: |
Re: [PATCH v4 4/5] qcow2: add zstd cluster compression |
Date: |
Tue, 03 Mar 2020 15:41:07 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
Denis Plotnikov <address@hidden> writes:
> zstd significantly reduces cluster compression time.
> It provides better compression performance maintaining
> the same level of the compression ratio in comparison with
> zlib, which, at the moment, is the only compression
> method available.
>
> The performance test results:
> Test compresses and decompresses qemu qcow2 image with just
> installed rhel-7.6 guest.
> Image cluster size: 64K. Image on disk size: 2.2G
>
> The test was conducted with brd disk to reduce the influence
> of disk subsystem to the test results.
> The results is given in seconds.
>
> compress cmd:
> time ./qemu-img convert -O qcow2 -c -o compression_type=[zlib|zstd]
> src.img [zlib|zstd]_compressed.img
> decompress cmd
> time ./qemu-img convert -O qcow2
> [zlib|zstd]_compressed.img uncompressed.img
>
> compression decompression
> zlib zstd zlib zstd
> ------------------------------------------------------------
> real 65.5 16.3 (-75 %) 1.9 1.6 (-16 %)
> user 65.0 15.8 5.3 2.5
> sys 3.3 0.2 2.0 2.0
>
> Both ZLIB and ZSTD gave the same compression ratio: 1.57
> compressed image size in both cases: 1.4G
>
> Signed-off-by: Denis Plotnikov <address@hidden>
[...]
> diff --git a/qapi/block-core.json b/qapi/block-core.json
> index a67eb8bff4..84889fb741 100644
> --- a/qapi/block-core.json
> +++ b/qapi/block-core.json
> @@ -4401,11 +4401,12 @@
> # Compression type used in qcow2 image file
> #
> # @zlib: zlib compression, see <http://zlib.net/>
> +# @zstd: zstd compression, see <http://github.com/facebook/zstd>
> #
> # Since: 5.0
> ##
> { 'enum': 'Qcow2CompressionType',
> - 'data': [ 'zlib' ] }
> + 'data': [ 'zlib', { 'name': 'zstd', 'if': 'defined(CONFIG_ZSTD)' } ] }
>
> ##
> # @BlockdevCreateOptionsQcow2:
Like MultiFDCompression less value @none.
QAPI part:
Acked-by: Markus Armbruster <address@hidden>
[...]
- [PATCH v4 0/5] qcow2: Implement zstd cluster compression method, Denis Plotnikov, 2020/03/03
- [PATCH v4 5/5] iotests: 287: add qcow2 compression type test, Denis Plotnikov, 2020/03/03
- [PATCH v4 1/5] block/qcow2-threads: fix qcow2_decompress, Denis Plotnikov, 2020/03/03
- [PATCH v4 3/5] qcow2: rework the cluster compression routine, Denis Plotnikov, 2020/03/03
- [PATCH v4 4/5] qcow2: add zstd cluster compression, Denis Plotnikov, 2020/03/03
- [PATCH v4 2/5] qcow2: introduce compression type feature, Denis Plotnikov, 2020/03/03