Todos
He tenido un problema en mi servidor desde que migré una de mis máquinas virtuales de Windows 2008 Server a Windows 7 (último): aunque he asignado cuatro núcleos a la máquina virtual e incluso parece verlos, parece pensar que tiene dos núcleos!
¿Alguien puede decirme qué está pasando aquí? Pensé que podría haber sido una incompatibilidad entre KVM y Windows 7, pero desde que ve los procesadores virtuales, empiezo a pensar que no ... ¿alguna pista?
Aquí hay una captura de pantalla del administrador de procesos que muestra solo dos núcleos en el mismo cuadro:
Respuestas:
Sospecho que los procesadores se presentan como procesadores de un solo núcleo en zócalos separados. Windows 7 ultimate admite hasta 2 sistemas de socket, por lo que utilizará 2 procesadores.
No sé si puede configurar KVM para presentar los procesadores como una CPU de cuatro núcleos o dos CPU de doble núcleo, lo que debería resolver el problema.
fuente
En libvirt 0.8.3, si escribe:
enumerará la topología del host:
Los números se refieren a sockets, núcleos por socket e hilos por núcleo. Agregue esta línea a la entrada de la CPU en el archivo xml para permitir que Windows use los 4 núcleos, por ejemplo:
fuente
<topology sockets='1' cores='4' threads='1'/>
a mi xml.virsh capabilities | grep topology
muestra<topology sockets='1' cores='6' threads='2'/>
. CRÍTICO:kill -HUP nnnnn
realicé un donde nnnnn es el PID de mi proceso libvirtd. Comenzó la VM. Funcionó. +1! ¡Gracias! ... ¡Pero no olvides patear libvirtd con una señal HUP o un reinicio!La configuración de topología es totalmente compatible con virt-manager desde Ubuntu 15.04.
Desde virt-manager> CPU> Topología:
Lo siguiente se crea a partir de la configuración anterior en virt-manager. No necesita ingresarlos con virsh edit.
La topología dejó de ser reconocida por Windows después de una actualización, y nuevamente limita las CPU virtuales a 2 sockets.
Para solucionar esto, use 'virsh edit' para ocultar la función kvm y agregue funciones de hiperv. Después de un apagado completo y reiniciar, la máquina virtual de Windows volverá a reconocer múltiples CPU.
¿Por qué mi máquina virtual Windows 7 que se ejecuta bajo KVM de Linux no usa todos los procesadores virtuales?
fuente
En RHEL / CentOS 5.5 (kvm> = 83-164.el5) el binario kvm también admite la opción "-smp N, cores = N" (hay parches de backport en el paquete); sin embargo, la versión libvirt no admite el elemento <topology> en el dominio XML. Una solución alternativa es crear un script de contenedor para / usr / libexec / kvm que agregue la opción adecuada y especifique ese script en el elemento <emulator> en lugar de la ruta predeterminada.
fuente
Vale la pena señalar que Ubuntu 10.4 (Lucid) tiene la versión 0.7.5 de libvirt, mientras que el soporte para la topología se agregó a libvirt en la versión 0.7.6. Ubuntu 10.10 (Maverick) tiene 0.8.3 libvirt y, por lo tanto, debería ser capaz de soportar directamente la especificación de topología en el XML sin un contenedor.
fuente