Eu tenho um processador quad-core i7 com hyperthreading (8 núcleos lógicos). Quando configurei uma máquina virtual para usar 8 processadores, o VirtualBox me alertou dizendo que só tenho quatro núcleos (o que é verdade) e que isso pode causar uma problema de desempenho. Mas o hyperthreading é um recurso de hardware; portanto, o sistema operacional vê 8 núcleos e envia instruções para todos os 8. E se configurá-lo como 4 fizesse com que a VM usasse 2 núcleos (4 threads) em vez de 4 threads simultâneos (nos 4 núcleos) )? O aviso que recebi leva em consideração que minha máquina possui um hyperthreading?
fonte
Descobri que, embora seja possível (e sem dúvida mais rápido) no VirtualBox (minha experiência com a versão 5.1.0) alocar vCPUs para uma VM baseada em processadores lógicos, é possível que ocorram problemas no sistema operacional convidado ao executar em alta carga . No meu caso, uma VM do Windows 2012 R2 com 12 vCPUs em um host Ubuntu 16.04 de 8 núcleos (que relata 16 processadores lógicos) seria BSOD durante alta carga de CPU com a mensagem de erro DPC_WATCHDOG_VIOLATION. Uma análise minidump usando osronline.com mostrou e1g6032e.sys (o driver de rede Intel 100/1000 nativo do Windows) como a causa da violação.
Isso me leva a acreditar que o tempo dentro do sistema operacional convidado é impactado negativamente ao alocar vCPUs com base na capacidade lógica do processador e na execução da VM em alta carga por períodos prolongados. No meu caso, 100% da carga da CPU na VM do Windows por alguns minutos resultaria no BSOD. Após reduzir a contagem de vCPU para 8 (o que corresponde à contagem de núcleos físicos do host), a VM do Windows não faz mais BSOD em situações semelhantes de alta carga. A documentação online do VirtualBox diz que é preciso fazer isso, mas não oferece nenhum motivo.
No meu ambiente, havia também duas outras VMs do Ubuntu em execução, cada uma com 8 vCPUs próprias. No entanto, a carga sobre eles era mínima no momento dos problemas de BSOD da VM do Windows.
fonte
O aviso que recebi leva em consideração que minha máquina possui um hyperthreading?
Sim. Se você definir o número de núcleos em uma VM para maior do que o número fisicamente existente, o processo de agendamento de tarefas no Virtual Box confirmará os recursos da CPU, causando grandes problemas de desempenho.
Quanto à distribuição da carga pelos núcleos, esse é o trabalho do sistema operacional host e deve se comportar da maneira correta.
fonte
Este foi um original de VM para sua máquina? Às vezes, você receberá erros peculiares ao clonar uma VM e movê-la para outra máquina e / ou alterar as configurações.
Eu recomendo baixar e instalar a versão mais recente do Virtual Box com as extensões mais recentes.
Eu comprometi todos os oito núcleos e não estou recebendo esse erro com o meu i7 executando uma VM com o Ubuntu 13.10.
fonte