KVM部署虚拟机时SSD性能大幅下降的优化方案咨询
KVM部署虚拟机时SSD性能大幅下降的优化方案咨询
大家好,我最近碰到一个头疼的KVM磁盘性能问题,想请各位大佬帮忙支支招:
- 我的宿主机是Ubuntu 22.04 LTS,用了两块2TB的三星SSD 870 QVO做RAID 0,总容量4TB,宿主机本地跑4KiB随机写入测试能稳定在40MB/s左右,最高到43MB/s
- 但用KVM创建的文件型虚拟机(试过raw和qcow2两种磁盘格式),同样的测试下性能直接掉到了1MB/s上下,这差距实在太大了,完全没法用
- 我已经试过在virt-manager里给磁盘设置
nocache,也切换过none/writeback缓存模式,可性能一点起色都没有
具体测试数据对比
宿主机测试(fio命令)
我用的测试命令是:
fio --name=random-write --ioengine=posixaio --rw=randwrite --bs=4k --size=4g --numjobs=1 --iodepth=1 --runtime=60 --time_based --end_fsync=1
三次测试的结果都很稳定,比如其中一次的核心数据:
write: IOPS=11.2k, BW=43.7MiB/s (45.8MB/s)(4096MiB/93810msec); 0 zone resets ... Run status group 0 (all jobs): WRITE: bw=43.7MiB/s (45.8MB/s), 43.7MiB/s-43.7MiB/s (45.8MB/s-45.8MB/s), io=4096MiB (4295MB), run=93810-93810msec
KVM虚拟机测试
同样的命令跑在KVM虚拟机里,性能暴跌,比如其中一次的结果:
write: IOPS=250, BW=1001KiB/s (1026kB/s)(826MiB/844616msec); 0 zone resets ... Run status group 0 (all jobs): WRITE: bw=1001KiB/s (1026kB/s), 1001KiB/s-1001KiB/s (1026kB/s-1026kB/s), io=826MiB (866MB), run=844616-844616msec
我还对比了ESXi上的OpenStack虚拟机,人家同样测试能跑到12-24MB/s,这说明我的KVM配置肯定还有优化空间。
虚拟机磁盘相关配置
我的KVM虚拟机XML里磁盘部分的配置大概是这样的:
<disk type='file' device='disk'> <driver name='qemu' type='qcow2' cache='none' io='native'/> <source file='/var/lib/libvirt/images/controller2.qcow2'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/> </disk>
想问问大家,还有什么我没尝试过的优化手段吗?比如磁盘IO模式、宿主机的磁盘调度策略、KVM的其他参数设置等等,都可以给我提提建议!
备注:内容来源于stack exchange,提问作者shorif2000




