A default Windows installation is bloated. Run these inside the guest:
After optimization, trim the QCOW2 image from the host:
# Inside guest: Optimize-VHD -Path C:\ -Mode Full (PowerShell)
# Then on host:
qemu-img convert -O qcow2 Windows10.qcow2 Windows10_compact.qcow2
qemu-img create -f qcow2 -b Windows\ 10.qcow2 overlay.qcow2
# Increase to 100GB
qemu-img resize Windows10.qcow2 100G
Then inside Windows: open Disk Management → extend partition.
For a single Windows 10.qcow2 on an NVMe/SSD, set cache to unsafe or writeback in your libvirt domain XML:
<driver name="qemu" type="qcow2" cache="writeback" io="native"/>
Warning: unsafe is fast but risks data loss on host power failure.