甚至光盘吞吐量(原始lvm分区上的libvirt)与服务器上的原始性能非常接近), 但是 IOP / s低至在Linux和Windows客户端,100-200个客户端(相对于1000个主机端)。
这是一个生活的事情(KVM不能做得更好)还是我做了一些完全错误的事情?
有趣的是,我能够通过改变设置(qcow2 vs raw-image vs raw-partition)或configuration(caching或IO调度)和变化来影响吞吐量,但IOP在所有那些处于相同的低点组合。
•超微双dual Xeon E5520与24GB内存
•2个希捷星座1TB(Adaptec 3405上的RAID1)
•2x希捷猎豹(Adaptec 6405上的RAID1)。
•Ubuntu 11.10 3.0.0-13-server
•kvm / QEMU仿真器版本0.14.1(qemu-kvm-0.14.1)
•从主机和来宾(Bonnie ++,hdparm,hdtune在Windows上)对磁盘进行基准testing(bonnie ++,hdparm)
我testing了几个光盘configuration,目前的设置是:
(他们只是不需要“高”IO性能,所以我保持更舒适的discfiles)
•在我的星座上lvm上的qcow2光盘文件
•qemu / ide
<disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/media/vm/images/mex/mex_root.qcow2'/> <target dev='hda' bus='ide'/> <address type='drive' controller='0' bus='0' unit='0'/> </disk>
(运行SQL-Server和远程桌面服务,所以在这里我肯定需要一个好的IO性能)
•我的猎豹原始lvm分区
•virtio
<emulator>/usr/bin/kvm</emulator> <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='none'/> <source dev='/dev/Cheetah/mts'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </disk>
最佳configuration(通常)如下:
elevator=deadline elevator=noop noatime,nodiratime 在启动KVM之前,请尝试将“最终期限”设置为主机磁盘的I / O调度程序:
for f in /sys/block/sd*/queue/scheduler; do echo "deadline" > $f; done
如果你有I / O约束的负载,这可能是你的最佳select,正如这篇IBM的文章所build议的。