我有一个标准的(未修改的)KVM + libvirtd,安装在8G内存和8核CPU的干净的Centos 6机器上。
当我尝试使用virt-manager安装guest centos 6时,需要很长时间才能完成安装。 我给了它2核心和3 GB的RAM,我可以看到在性能选项卡,它永久使用所有3GB的RAM。
问题在哪里?
我有KVM(CentOS EL 6.4)这个问题,所以我跑了一个基准来找出发生了什么。 事实certificate,我的访客虚拟机的运行速度只有主机(裸机操作系统)的15%。 我已经检查了kvm的先决条件,并validation了我的英特尔处理器有VT-x(vmx)(AMD称之为svm)。
cat /proc/cpuinfo | grep vmx
为什么然后慢的performance? 事实certificate,我需要在系统的BIOS中启用VT-x(旧机器大约在2006年)。 为了validation这是问题所在,我检查了内核模块kvm_intel是否正在运行:
lsmod | grep kvm
原来,它没有运行kvm_intel 。 当我安装了我的虚拟机时,libvirt将domain type定义为qemu 。 但是这应该是typeskvm 。 你可以检查:
virsh edit your_vm_guest_domain
检查顶部的行…
<domain type='qemu'>
这是libvirt告诉我,它没有检测到我的系统上的kvm_intel存在,并默认为纯粹的qemu模拟。
当我在BIOS中启用VT-x时,发现我可以加载kvm_intel模块,然后更改<domain type='kvm'> 。 我再次执行了相同的基准testing,发现客虚拟机和主机操作系统之间的速度几乎没有差异。
默认的磁盘caching模式是写入,这是非常慢的。 将磁盘切换到回写模式,您将享受非常显着的I / O性能提升。
在有人抱怨之前:在相对较新的(CentOS 6+)libvirt / qemu / kvm版本中, 回写磁盘是安全的,除非客户操作系统不支持/激活写入障碍(我认为)。
一些更多的信息可以在这里和这里find