qcow2 perfomance: read-only IO on the guest generates high write IO on t
From:
Christopher Pereira
Subject:
qcow2 perfomance: read-only IO on the guest generates high write IO on the host
Date:
Thu, 09 Sep 2021 11:48:06 +0200
Hi,
I'm *reading* a directory with 5.000.000 files (2,4 GB) inside a guest using "find | grep -c".
On the host, virt-top reports high *write* IO (40 MB/s !) during over 1 hour.
I later repeated the read-only operation inside the guest and no additional data was written on the host. The operation took only some seconds.
I believe QEMU was creating some kind of cache or metadata map (?) the first time I accessed the inodes in the guest.
But I wonder why the cache or metadata map wasn't available the first time and why QEMU had to re-create it?
The VM has "compressed base <- snap 1" and base was converted without metadata=prealloc.
Is it because the base was created using convert without metadata=prealloc so the metadata map got lost?
I will be happy to gain some insights of what's going on under the hood.
Additional info:
* Guest fs is xfs. * (I believe the snapshot didn't significantly increase in size, but I would need to double check) * This is a production host with old QEMU emulator version 2.3.0 (qemu-kvm-ev-2.3.0-31.el7_2.10.1)