Todos
Eu tive um problema no meu servidor desde que migrei uma das minhas VMs do Windows 2008 Server para o Windows 7 (máximo): embora eu tenha atribuído quatro núcleos à VM e até pareça vê-los, parece pensar que tem dois núcleos!
Alguém pode me dizer o que está acontecendo aqui? Eu pensei que poderia haver alguma incompatibilidade entre o KVM e o Windows 7, mas como ele vê os processadores virtuais, estou começando a pensar que não ... alguma pista?
Aqui está uma captura de tela do gerenciador de processos mostrando apenas dois núcleos na mesma caixa:
Respostas:
Eu suspeito que os processadores estão sendo apresentados como processadores de núcleo único em soquetes separados. O Windows 7 Ultimate suporta até 2 sistemas de soquete, portanto, ele usa 2 processadores.
Não sei se você pode configurar o KVM para apresentar os processadores como uma única CPU quad core ou 2 CPUs dual core, o que deve resolver o problema.
fonte
Na libvirt 0.8.3, se você digitar:
listará a topologia do host:
Os números referem-se a soquetes, núcleos por soquete e threads por núcleo. Adicione esta linha à entrada da CPU no arquivo xml para permitir que o Windows use todos os 4 núcleos, por exemplo:
fonte
<topology sockets='1' cores='4' threads='1'/>
ao meu xml.virsh capabilities | grep topology
mostra<topology sockets='1' cores='6' threads='2'/>
. CRÍTICO: executei um emkill -HUP nnnnn
que nnnnn é o PID do meu processo libvirtd. Iniciou a VM. Funcionou. +1! Obrigado! ... Mas não esqueça de chutar a libvirtd com um sinal HUP ou uma reinicialização!As configurações de topologia são totalmente suportadas no virt-manager desde o Ubuntu 15.04.
Do virt-manager> CPUs> Topologia:
O seguinte é criado a partir das configurações acima no virt-manager. Você não precisa inseri-los com o virsh edit.
A topologia deixou de ser reconhecida pelo Windows após uma atualização e limita novamente a CPU virtual a 2 soquetes.
Para corrigir isso, use 'virsh edit' para ocultar o recurso kvm e adicione recursos hyperv. Após um desligamento completo e a reinicialização, a VM do Windows reconhecerá novamente várias CPUs.
Por que minha VM do Windows 7 em execução no KVM do Linux não usa todos os processadores virtuais?
fonte
No RHEL / CentOS 5.5 (kvm> = 83-164.el5), o binário kvm também suporta a opção "-smp N, cores = N" (existem patches de backport no pacote); no entanto, a versão libvirt não suporta o elemento <topology> no XML do domínio. Uma solução alternativa é criar um script de wrapper para / usr / libexec / kvm que inclua a opção apropriada e especifique esse script no elemento <emulator> em vez do caminho padrão.
fonte
Vale ressaltar que o Ubuntu 10.4 (Lucid) possui a versão 0.7.5 da libvirt enquanto o suporte à topologia foi adicionado à libvirt na versão 0.7.6. O Ubuntu 10.10 (Maverick) possui 0.8.3 libvirt e, portanto, deve suportar diretamente a especificação de topologia no XML sem um wrapper.
fonte