V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
KVM Installation
KVM on Ubuntu
WizardLeo
V2EX  ›  KVM

如何优化 kvm 的硬盘 io

  •  
  •   WizardLeo · 19 天前 · 430 次点击
    如题,硬件为 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 的方法!
    4 条回复    2024-06-06 13:43:47 +08:00
    514146235
        1
    514146235  
       18 天前   ❤️ 1
    cache 使用 none 。
    writeback 带来的性能提升只是假象。

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

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

    vm 里面你感觉卡就是随机读写慢,随机读写提升上来了。性能自然就上来了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   912 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 19:32 · PVG 03:32 · LAX 12:32 · JFK 15:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.