Vous avez peut-être lu mon article sur Comment créer une image Windows pour OpenStack et ses articles connexes tels que la réparation de Windows n'a pas pu analyser ou traiter le fichier de réponses sans assistance pour Pass Specialize et Comment configurer la connexion automatique de la machine virtuelle Windows pour OpenStack Cloud. Pour ajouter à la série, ici j'ai rencontré un autre problème. c'est-à-dire que la machine virtuelle Windows 10 affiche toujours une utilisation du processeur à 100 % sur QEMU-KVM, ce qui rend la machine virtuelle inutilisable.
Informations de configuration
Version KVM : 4.2.0
OS invité : Machine virtuelle Windows10 Home avec 8vCPU
CPU HÔTE : Processeur AMD Opteron(TM) 6212 avec
- Modèle de processeur :x86_64
- CPU :32
- Fréquence du processeur :2 593 MHz
- Prise(s) CPU :1
- Cœur(s) par socket :32
- Thread(s) par cœur :1
- Cellule(s) NUMA :1
- Taille de la mémoire :65633412 Kio
Cependant, Windows a détecté ces vCPU comme des processeurs séparés (pas des cœurs) et il ne pouvait en utiliser qu'un seul comme indiqué ci-dessous :
Problème
Ouvrez le Device Manager
de Windows et accédez à Processors
pour s'assurer qu'il a alloué 8 vCPU que nous avions attribués au système d'exploitation invité.
Dans le même temps, les propriétés de Windows 10 et le gestionnaire de tâches indiquent qu'un seul processeur virtuel QEMU est disponible.
Explication
Cela signifie que Windows 10 ne peut utiliser qu'un seul cœur, quel que soit le nombre d'entre eux sur le processeur.
Nombre de processeurs pris en charge dans Windows
Le problème est que la version de bureau de Windows a une restriction sur le nombre maximum de processeurs physiques (sockets) qu'un ordinateur peut utiliser
- Windows 10 Famille – 1 processeur
- Windows 10 Professionnel – 2 processeurs
- Station de travail Windows 10 :jusqu'à 4 processeurs
- Windows Server 2016 :jusqu'à 64 processeurs
Cependant, cette restriction n'est pas liée au nombre de cœurs. Afin d'améliorer les performances de la machine virtuelle, vous pouvez utiliser un processeur avec plus de cœurs.
Solution
Gestion du cœur virtuel et du vCPU dans QEMU-KVM
Dans KVM Hypervisor exécutant Windows 10 VM, tous les cœurs virtuels attribués sont considérés comme des processeurs distincts. Pour utiliser toutes les ressources CPU allouées à une machine virtuelle, celle-ci doit voir un processeur à 8 cœurs. L'hyperviseur KVM permet à l'utilisateur de définir le nombre de cœurs virtuels utilisés par chaque machine virtuelle.
Ne configurez jamais un numéro supérieur. de cœurs sur chaque machine virtuelleNe configurez jamais un nombre de cœurs virtuels supérieur sur chaque machine virtuelle au nombre de cœurs réels disponibles sur l'ordinateur hôte.
Arrêter la machine virtuelle (win10 est le nom de la VM)
# virsh shutdown win10
Modifier la configuration XML de la VM KVM
# virsh edit win10
Sortie :
<domain type='kvm'> <name>win10</name> <uuid>3b4b8a6c-bf72-4cf8-8c63-fd7b5edf6784</uuid> <metadata> <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0"> <libosinfo:os id="http://microsoft.com/win/10"/> </libosinfo:libosinfo> </metadata> <memory unit='KiB'>8388608</memory> <currentMemory unit='KiB'>8388608</currentMemory> <vcpu placement='static'>8</vcpu> <os> <type arch='x86_64' machine='pc-q35-rhel8.2.0'>hvm</type> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <hyperv> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> </hyperv> <vmport state='off'/> </features> .... ....
Ajoutez le bloc suivant après </features>
<cpu mode='host-passthrough' check='none'> <topology sockets='1' cores='8' threads='1'/> </cpu>
Enregistrez le fichier de configuration et démarrez la VM. Connectez-vous maintenant à la machine virtuelle invitée Windows 10 et assurez-vous que Windows voit tous les cœurs virtuels alloués dans le gestionnaire de tâches comme ci-dessous.