TL; DR: Using dd I'm getting ~550 MB/s reads in a VM guest on virtiofs, but only ~150 MB/s running dd on the host
Here's an odd one, I have a Windows OS template that I developed in a PVE VM that will be V2P into a physical box for testing. I gracefully shut down the guest Windows OS, took a snapshot, then updated the VM config with a virtiofs passthrough and an Ubuntu 24.04 live ISO on the DVD drive.
I booted into the live ISO, successfully installed
Out of curiosity, I ran
To account for Guest OS filesystem caching to memory, I completely unmounted and remounted the virtiofs assthrough and received the same results.
I perform the same read on the host, and it hits a ceiling of ~150 MB/s:
Any idea why the VM guest has faster reads?
Host: Proxmox 8.4.6
Storage: 2TB AData SX8200 NVMe SSD in single-disk ZFS layered over a LUKS encrypted block
The stored clonezilla image files are located in a folder within the ZFS dataset
	
	
	
		
				
			Here's an odd one, I have a Windows OS template that I developed in a PVE VM that will be V2P into a physical box for testing. I gracefully shut down the guest Windows OS, took a snapshot, then updated the VM config with a virtiofs passthrough and an Ubuntu 24.04 live ISO on the DVD drive.
I booted into the live ISO, successfully installed
virtiofsd and clonezilla, and captured a full disk image to the mounted virtiofs path without any issues.# mount -t virtiofs $passthrough-name /mnt/virtiofsOut of curiosity, I ran
dd against the captured image file to see how well virtiofs performed with reads, and observed ~550 MB/s:# dd if=sda3.ntfs-ptcl-img.zst.aa of=/dev/null -status=progress3874079232 bytes (3.9 GB, 3.6 GiB) copied, 7.00021 s, 553 MB/s^CTo account for Guest OS filesystem caching to memory, I completely unmounted and remounted the virtiofs assthrough and received the same results.
I perform the same read on the host, and it hits a ceiling of ~150 MB/s:
# dd if=sda3.ntfs-ptcl-img.zst.aa of=/dev/null -status=progress701627392 bytes (702 MB, 669 MiB) copied, 4.53475 s, 155 MB/s^CAny idea why the VM guest has faster reads?
Host: Proxmox 8.4.6
Storage: 2TB AData SX8200 NVMe SSD in single-disk ZFS layered over a LUKS encrypted block
The stored clonezilla image files are located in a folder within the ZFS dataset
rpool/data/enc
		Bash:
	
	# lsblk -fT -o NAME,FSTYPE,FSVER,LABEL,FSAVAIL,FSUSE%,SIZE,TYPE,MOUNTPOINTS /dev/nvme0n1
NAME            FSTYPE      FSVER    LABEL FSAVAIL FSUSE%  SIZE TYPE  MOUNTPOINTS
nvme0n1                                                    1.9T disk 
├─nvme0n1p1                                               1007K part 
├─nvme0n1p2     vfat        FAT32           510.7M     0%  512M part  /boot/efi
├─nvme0n1p3     LVM2_member LVM2 001                        31G part 
│ └─pve-root    ext4        1.0              15.9G    42%   31G lvm   /
└─nvme0n1p4     crypto_LUKS 2                              1.8T part 
  └─nvme0n1-enc zfs_member  5000     rpool                 1.8T crypt
# zpool list rpool
NAME    SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
rpool  1.83T   759G  1.09T        -         -    15%    40%  1.00x    ONLINE  -
# zpool status -v rpool
  pool: rpool
 state: ONLINE
status: Some supported and requested features are not enabled on the pool.
        The pool can still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
        the pool may no longer be accessible by software that does not support
        the features. See zpool-features(7) for details.
  scan: scrub repaired 0B in 00:10:28 with 0 errors on Sun Oct 12 00:34:29 2025
config:
        NAME                                                                STATE     READ WRITE CKSUM
        rpool                                                               ONLINE       0     0     0
          dm-uuid-CRYPT-LUKS2-b30f5771759d4ca6972a5da56f7eef01-nvme0n1-enc  ONLINE       0     0     0
errors: No known data errors
# zfs list -o space,sync,xattr,atime,relatime,refquota rpool/enc/data
NAME            AVAIL   USED  USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD  SYNC      XATTR  ATIME  RELATIME  REFQUOTA
rpool/enc/data  1.03T   111G        0B   98.8G             0B      12.2G  standard  sa     off    on            none