GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué Windows 10 VM muestra una utilización de CPU del 100 % siempre en QEMU-KVM?

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 virtual

Nunca 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.


Linux
  1. ¿Qué significa /proc/loadavg 'S "cpu and Io Utilization"?

  2. ¿Por qué el tiempo de Unix comienza en 1970-01-01?

  3. CPU alta causada por Sophos en Windows

  4. Obtener ciclos de CPU usando RDTSC:¿por qué el valor de RDTSC siempre aumenta?

  5. El proceso vmlinuz se ejecuta en el 100 % de la CPU

11 razones por las que Linux es mejor que Windows

Por qué los nerds usan Linux

Windows – Gnome – ¿Windows siempre abre arriba a la izquierda?

¿Por qué el medidor Htop muestra>90 % mientras que la tabla es 0,0 %?

Cómo verificar el uso o la utilización de la CPU de Linux

¿Por qué Windows no reconoce los archivos dentro de las particiones de Linux?