一个多星期以来,我一直在尝试确定 proxmox 主机和 Windows Server 2019 VM 之间出现以下 IO 性能下降的原因。
我必须向你们寻求帮助,因为我已经没什么主意了。
环境数据:
- 单个 proxmox 主机,无集群,带 ZFS 的 pve 6.1-8
- 一些 WS19 虚拟机都存在此问题,负载非常低,SOHO 使用率
- ZFS sync=disabled,VM 磁盘的 volblocksize = 4k
- VM 具有所有最新的 VirtIO 驱动程序(0.1.173)
使用以下 fio 命令在虚拟机和主机上进行 IO 测试:
fio --filename=test --sync=1 --rw=$TYPE --bs=$BLOCKSIZE --numjobs=1 --iodepth=4 --group_reporting --name=test --filesize=1G --runtime=30
结果(主机与虚拟机):
- 4K 随机读取:573 vs 62.5 MiB/s
- 4K 随机写入:131 vs 14.1 MiB/s
- 4K 顺序读取:793 vs 56,2 MiB/s
- 4K 顺序写入:240 vs 3,42 MiB/s
- 64K 随机读取:1508 vs 831 MiB/s
- 64K 随机写入:596 vs 62,5 MiB/s
- 64K 顺序读取:1631 vs 547 MiB/s
- 64K 顺序写入:698 vs 43,8 MiB/s
图表:
我目前尝试过的方法是:ZFS 上的不同 volblocksizes、不同的 ZFS 同步设置(由于主机在 DC,因此将其保留为禁用状态)、virtio-blk 与 virtio scsi single(区别不大)、写回缓存(变得更糟)。
有什么建议我遗漏了什么吗?