[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Large qcow2 performance

From: Alberto Garcia
Subject: Re: Large qcow2 performance
Date: Tue, 24 Sep 2019 17:15:56 +0200
User-agent: Mutt/1.5.23 (2014-03-12)

On Mon, Sep 23, 2019 at 03:17:39PM -0500, Andrew Martin wrote:

> I am considering creating a VM with a large qcow2, around 6TB in
> size. This Linux VM will be reading and writing a lot of small
> files to this very large qcow2 using the VirtIO driver. Are there
> any concerns or guidance about creating such a large qcow2, or
> performance issues with small files on a 6TB qcow2?


there's two important parameters that can affect performance:
cluster_size and l2_cache_size.

cluster_size is set when you create the image, l2_cache_size is a
runtime option.

If the L2 cache size is not large enough, I/O performance will suffer.
Check here for a summary (the defaults have changed since then, but
the basic description of the problem is correct):


With small clusters you need a larger L2 cache, that is: QEMU needs
more memory in order to get the same performance.

Images with large clusters use less memory, but there are two

- The cluster is the minimum unit of allocation, so even if you write
  512 bytes QEMU needs to allocate one complete cluster and fill it
  with data. This makes *allocation* much slower the larger the
  cluster size.

  See the table here for an example, but focus only on the first and
  last columns and ignore the two in the middle:


  After a cluster is allocated an image with large clusters should
  give you the same (or possibly better) performance.

- Because of what I just said, images with large clusters waste more
  space on disk.

A hybrid approach that combines the benefits of large clusters
regarding memory usage with the benefits of small clusters regarding
allocation performance is currently under development, and I plan to
send patches soon.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]