Tout
J'ai eu un problème sur mon serveur depuis que j'ai migré une de mes machines virtuelles de Windows 2008 Server vers Windows 7 (ultime): bien que j'aie assigné quatre cœurs à la machine virtuelle et il semble même les voir, il semble le penser a deux cœurs!
Quelqu'un peut-il me dire ce qui se passe ici? Je pensais que cela aurait pu être une incompatibilité entre KVM et Windows 7 mais comme il voit les processeurs virtuels, je commence à penser que non ... des indices?
Voici une capture d'écran du gestionnaire de processus montrant seulement deux cœurs sur la même boîte:
Réponses:
Je soupçonne que les processeurs sont présentés comme des processeurs monocœur dans des sockets séparés. Windows 7 Ultimate prend en charge jusqu'à 2 systèmes de socket, il utilisera donc 2 processeurs.
Je ne sais pas si vous pouvez configurer KVM pour présenter les processeurs comme un processeur quad core unique ou 2 processeurs dual core, ce qui devrait résoudre le problème.
la source
Sur libvirt 0.8.3, si vous tapez:
il listera la topologie de l'hôte:
Les nombres font référence aux sockets, aux cœurs par socket et aux threads par noyau. Ajoutez cette ligne à l'entrée cpu dans le fichier xml pour permettre à Windows d'utiliser les 4 cœurs, par exemple:
la source
<topology sockets='1' cores='4' threads='1'/>
à mon xml.virsh capabilities | grep topology
montre<topology sockets='1' cores='6' threads='2'/>
. CRITIQUE: effectué unkill -HUP nnnnn
où nnnnn est le PID de mon processus libvirtd. Démarré la VM. Ça a marché. +1! Merci! ... Mais n'oubliez pas de lancer libvirtd avec un signal HUP ou un redémarrage!Les paramètres de topologie sont entièrement pris en charge dans virt-manager depuis Ubuntu 15.04.
Depuis virt-manager> CPU> Topologie:
Ce qui suit est créé à partir des paramètres ci-dessus dans virt-manager. Vous n'avez pas besoin de les saisir avec virsh edit.
La topologie a cessé d'être reconnue par Windows après une mise à jour et limite à nouveau les CPU virtuels à 2 sockets.
Pour résoudre ce problème, utilisez «virsh edit» pour masquer la fonctionnalité kvm et ajoutez des fonctionnalités d'hyperv. Après un arrêt complet et un redémarrage, la machine virtuelle Windows reconnaîtra à nouveau plusieurs processeurs.
Pourquoi ma machine virtuelle Windows 7 exécutée sous KVM Linux n'utilise-t-elle pas tous les processeurs virtuels?
la source
Dans RHEL / CentOS 5.5 (kvm> = 83-164.el5), le binaire kvm prend également en charge l'option "-smp N, cores = N" (il y a des correctifs de rétroportage dans le package); cependant, la version libvirt ne prend pas en charge l'élément <topology> dans le domaine XML. Une solution consiste à créer un script d'encapsuleur pour / usr / libexec / kvm qui ajoute l'option appropriée et spécifie ce script dans l'élément <emulator> au lieu du chemin par défaut.
la source
Il convient de noter que Ubuntu 10.4 (Lucid) a la version 0.7.5 de libvirt tandis que la prise en charge de la topologie a été ajoutée à libvirt dans la version 0.7.6. Ubuntu 10.10 (Maverick) a la libvirt 0.8.3 et devrait donc être capable de supporter directement la spécification de topologie dans le XML sans wrapper.
la source