For more than a week, I am trying to determine the reason for the following IO performance degradation between proxmox host and a Windows Server 2019 VM(s).
I have to ask for your help guys because I've run out of ideas.
Environment data:
Results:
As you can see almost all IO is drastically affected, the only exception is 1M reads. Writing performance is horrible.
Here is it graphically:
What I have tried so far: different volblocksizes on ZFS, different ZFS sync setting (left it on disabled, since the host is in DC), virtio-blk vs virtio scsi single (not much difference), writeback cache (became even worse).
Any suggestions what am I missing?
I have to ask for your help guys because I've run out of ideas.
Environment data:
- Single proxmox host, no cluster, pve 6.1-8 with ZFS
- A few WS19 VMs all having this issue, very low load, SOHO-usage
- ZFS sync=disabled, volblocksize for VM disks = 4k
- VM has all the latest VirtIO drivers (0.1.173)
Bash:
fio --filename=test --sync=1 --rw=$TYPE --bs=$BLOCKSIZE --numjobs=1 --iodepth=4 --group_reporting --name=test --filesize=1G --runtime=30
Results:
Host | VM virtio scsi single, cache=none, discard | |
4K random read | 573,00 MiB/s | 62,50 MiB/s |
64K random read | 1.508,00 MiB/s | 831,00 MiB/s |
1M random read | 1.796,00 MiB/s | 1.730,00 MiB/s |
4K random write | 131,00 MiB/s | 14,10 MiB/s |
64 random write | 596,00 MiB/s | 62,50 MiB/s |
1M random write | 1.081,00 MiB/s | 75,40 MiB/s |
4K sequential read | 793,00 MiB/s | 56,20 MiB/s |
64K sequential read | 1.631,00 MiB/s | 547,00 MiB/s |
1M sequential read | 1.542,00 MiB/s | 2.036,00 MiB/s (?) |
4K sequential write | 240,00 MiB/s | 3,42 MiB/s |
64K sequential write | 698,00 MiB/s | 43,80 MiB/s |
1M sequential write | 1.088,00 MiB/s | 223,00 MiB/s |
As you can see almost all IO is drastically affected, the only exception is 1M reads. Writing performance is horrible.
Here is it graphically:
What I have tried so far: different volblocksizes on ZFS, different ZFS sync setting (left it on disabled, since the host is in DC), virtio-blk vs virtio scsi single (not much difference), writeback cache (became even worse).
Any suggestions what am I missing?
Last edited: