如何优化 kvm 的硬盘 io

23 天前
 WizardLeo
如题,硬件为 13500+64g d4+980pro(1t 已用 60%左右),linux(unraid)下虚拟化 win(server2022)
宿主机 fs 是启用了内存缓存的 zfs ,虚拟机 fs 是普通 ntfs
目前 kvm 的虚拟磁盘配置是:
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='writeback'/>
<source file='/mnt/cache/domains/Windows server2022/vdisk1.img' index='3'/>
<backingStore/>
<target dev='hdc' bus='virtio'/>
<serial>vdisk1</serial>
<boot order='1'/>
<alias name='virtio-disk2'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
虚拟机下运行 mcbe 服务端明显感觉卡卡的(docker 环境没有类似情况),将 disk cache 改成 writeback 对于顺序读写有 30%的提升(3000->4000),但整体改善不明显。
在不另外购置 ssd 直通给它的情况下,求优化 io 的方法!
470 次点击
所在节点    KVM
4 条回复
514146235
23 天前
cache 使用 none 。
writeback 带来的性能提升只是假象。

zfs 应该也有类似 btrfs cow 的设定,要关掉。

最后的优化就是尽量给 vm 分配 block 设备。
WizardLeo
22 天前
@514146235
感谢回复,不太懂“block 设备”是什么东西,请大佬细说。另外就是关掉 zfs 的写时复制是吧。
WizardLeo
22 天前
@514146235
目前正在使用:
<driver name='qemu' type='raw' cache='none' io='native'/>
这样的配置,实际测试下来貌似随机读写比 writeback 略微强一点点?
514146235
22 天前
在你的场景里面,主要影响性能的应该是 cow 。
block 设备就是指直接分配 sda 或者 sda1 这样的设备给 vm 。就不需要再经过一次 host 的文件系统了。但是这个一般需要提前规划。

vm 里面你感觉卡就是随机读写慢,随机读写提升上来了。性能自然就上来了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1046864

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX