KVM performance tuning


http://www.ilsistemista.net/index.php/virtualization/11-kvm-io-slowness-on-rhel-6.html?limitstart=0


几个因素:缓存策略,镜像格式,预分配,IDE/virtIO

kvm缓存策略的简单介绍:http://blog.csdn.net/jollyjumper/article/details/12374415

raw格式磁盘镜像文件速度很快,但不支持快速快照(或者可以在文件系统上实现也可以),QCOW2是kvm默认的磁盘镜像文件格式,支持压缩和加密,并支持实时的,文件级快照。这里提到的预分配,raw格式是全部预分配,QCOW2只是元数据预分配(metadata preallocation)。

IDE controller是默认的,virt io据说可以得到更好性能,cpu使用更少。

1)对于RAW格式,预分配会加快速度,NONE和WRITEBACK表现大致相同,并且有无预分配影响不大,WRITETHROUGH模式很慢,耗时是其他两种模式的5倍以上,并且预分配比没有预分配快一倍。

对于QCOW2格式,几种缓存模式预分配会明显加快,NONE和writeback表现大致相同,writethrough最慢。

2)RAW和QCOW2,只要都选择预分配,性能差不多,如果不预分配,QCOW2完败。

3)在QCOW2中测试ide和virtio影响,发现在none和writeback下virtio略快,在writethrough上virtio明显变快。


如果要在QCOW2格式下获得更好的吞吐量,就不使用write through cache(使用none,writeback更可能会有数据丢失),使用预分配,最好还可以有virtio。

但是virt-manager界面上无法让QCOW2预分配,界面上的预分配实际上只对raw有效。只能这样:qemu-img create -f qcow2 -o size=10000000000,preallocation=metadata file.img

相关内容