Question paramètres optimaux pour l'invité Win7 64 sur l'hôte KVM 64 géré avec libvirt


J'utilise libvirt pour contrôler KVM sur un hôte assez récent (Core i3) exécutant Debian Squeeze amd64. L'hôte ainsi que les invités Linux travaillent rapidement et sont réactifs. Installer simplement Win7 avec le profil standard virt-manager pour Windows7 prend une éternité. Je blâme principalement le disque io, mais Windows ne semble généralement pas aussi réactif que les invités linux.

Avez-vous des indices concernant les paramètres de performances optimales pour les invités Win7 sur kvm?

(Désolé pour les nombreuses décharges, mais je pense qu'elles sont bonnes comme point de référence.)

Configuration de l'hôte:

kvm: Version: 1:0.12.5+dfsg-5+squeeze8
libvirt-bin: Version: 0.8.3-5+squeeze2

virsh dumpxml:

<domain type='kvm' id='27'>
  <name>win7-template</name>
  <uuid>a4eb05fa-0d4e-5ced-2ff1-e15507795d1b</uuid>
  <memory>2097152</memory>
  <currentMemory>2097152</currentMemory>
  <vcpu>2</vcpu>
  <os>
    <type arch='x86_64' machine='pc-0.12'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <clock offset='localtime'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/var/lib/libvirt/images/win7-template.img'/>
      <target dev='hda' bus='ide'/>
      <alias name='ide0-0-0'/>
      <address type='drive' controller='0' bus='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/var/lib/libvirt/images/isos/de_windows_7_professional_with_sp1_x64_dvd.iso'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
      <alias name='ide0-1-0'/>
      <address type='drive' controller='0' bus='1' unit='0'/>
    </disk>
    <controller type='ide' index='0'>
      <alias name='ide0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <interface type='network'>
      <mac address='52:54:00:af:89:f2'/>
      <source network='default'/>
      <target dev='vnet2'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/5'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/5'>
      <source path='/dev/pts/5'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <input type='tablet' bus='usb'>
      <alias name='input0'/>
    </input>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='5902' autoport='yes'/>
    <video>
      <model type='vga' vram='9216' heads='1'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </memballoon>
  </devices>
</domain>

cat / proc / cpuinfo (extrait)

processor   : 3
vendor_id   : GenuineIntel
cpu family  : 6
model       : 37
model name  : Intel(R) Core(TM) i3 CPU         540  @ 3.07GHz
stepping    : 2
cpu MHz     : 3058.386
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 2
cpu cores   : 2
apicid      : 5
initial apicid  : 5
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm arat tpr_shadow vnmi flexpriority ept vpid
bogomips    : 6117.86
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual

6
2018-06-11 07:03


origine




Réponses:


  1. Utilisez virtio pour les disques et le réseau.
  2. pour le point de montage où vous gardez les images et les isos, utilisez les options noatime et nodiratime
  3. utiliser le planificateur de délai sur l'hôte
  4. utilisez spice / qxl pour la vidéo pour une performance vidéo correcte

8
2018-06-11 07:16



Réponse très intéressante. Pourriez-vous développer un peu le raisonnement derrière ces pratiques? - Kenny Rasschaert
Ce sont les plus courantes, et si vous prenez une minute pour google, vous les verrez partout. Les appareils virtio offrent de bien meilleures performances que les appareils émulés (ide, rtl, e1000) car ils sont paravirtualisés. noatime et nodiratime empêchent l'hôte de générer des io redondants sur le disque, la date limite est réputée être la meilleure solution pour la plupart des charges de VM, et spice / qxl est un système graphique bien supérieur à celui de VNC - offrant des résolutions élevées et de bonnes performances vidéo - dyasny
Windows refuse l'installation sur virtio, ai-je besoin de ce pilote spécial sur le site kvm? - AndreasT
Utilisez cette iso - alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/… - dyasny
Thx très utile! Accepté. - AndreasT


Je viens d'installer Windows 7, puis après l'installation, j'ai changé le disque pour utiliser virtio.

Pour charger les pilotes, j'ai ajouté un périphérique virtio temporaire (1G), puis redémarré l'invité. Ensuite, chargé dans les pilotes Windows de la virtio via le gestionnaire de périphériques.

Ensuite, fermez l’invité, remplacez le disque principal de IDE par virtio. Comme Windows 7 avait déjà été chargé dans les pilotes virtio à partir de mon périphérique temporaire, le disque IDE a été correctement remplacé par virtio.


3
2017-12-20 00:33