Es posible que haya leído mi artículo sobre Cómo crear una imagen de Windows para OpenStack y sus artículos relacionados, como arreglar que Windows no pueda analizar o procesar el archivo de respuesta desatendido para Pass Specialize y Cómo configurar el inicio de sesión automático de Windows VM para OpenStack Cloud. Para agregar a la serie, aquí encontré otro problema. es decir, Windows 10 VM muestra una utilización de CPU del 100 % siempre en QEMU-KVM, lo que hace que la VM quede inutilizable.
Información de configuración
Versión KVM: 4.2.0
SO invitado: Máquina virtual Windows10 Home con 8 vCPU
CPU HOST: Procesador AMD Opteron(TM) 6212 con
- Modelo de CPU:x86_64
- CPU(s):32
- Frecuencia de la CPU:2593 MHz
- Zócalo(s) de CPU:1
- Núcleo(s) por socket:32
- Hilo(s) por núcleo:1
- celda(s) NUMA:1
- Tamaño de memoria:65633412 KiB
Sin embargo, Windows detectó estas vCPU como procesadores separados (no núcleos) y solo pudo usar 1 de ellos, como se muestra a continuación:
Problema
Abra el Device Manager
de Windows y navegue a Processors
para asegurarse de que haya asignado 8 vCPU que habíamos asignado al sistema operativo invitado.
Al mismo tiempo, tanto las propiedades de Windows 10 como el administrador de tareas muestran que solo hay disponible 1 procesador virtual QEMU.
Explicación
Significa que Windows 10 solo puede usar 1 núcleo, sin importar cuántos de ellos tenga en el procesador.
Número de procesadores compatibles en Windows
El problema es que la versión de escritorio de Windows tiene una restricción en la cantidad máxima de procesadores físicos (sockets) que puede usar una computadora
- Windows 10 Home :1 CPU
- Windows 10 Professional:2 CPU
- Estación de trabajo Windows 10:hasta 4 CPU
- Windows Server 2016:hasta 64 CPU
Sin embargo, esta restricción no está relacionada con el número de núcleos. Para mejorar el rendimiento de la Máquina Virtual, puede utilizar un procesador con más núcleos.
Solución
Administración de Virtual Core y vCPU en QEMU-KVM
En KVM Hypervisor que ejecuta Windows 10 VM, todos los núcleos virtuales asignados se consideran procesadores independientes. Para usar todos los recursos de CPU asignados a una máquina virtual, debe ver un procesador de 8 núcleos. El hipervisor KVM permite al usuario establecer la cantidad de núcleos virtuales utilizados por cada máquina virtual.
Nunca configure un número más alto. de núcleos en cada máquina virtualNunca configure una cantidad mayor de núcleos virtuales en cada máquina virtual que la cantidad de núcleos reales disponibles en la computadora host.
Apagar la Máquina Virtual (win10 es el nombre de la VM)
# virsh shutdown win10
Editar la configuración XML de la máquina virtual KVM
# virsh edit win10
Salida :
<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> .... ....
Agrega el siguiente bloque después de </features>
<cpu mode='host-passthrough' check='none'> <topology sockets='1' cores='8' threads='1'/> </cpu>
Guarde el archivo de configuración e inicie la máquina virtual. Ahora inicie sesión en la VM invitada de Windows 10 y asegúrese de que Windows vea todos los núcleos virtuales asignados en el Administrador de tareas como se muestra a continuación.