Como o software de virtualização faz o paralelismo de tarefas no host?

3

Eu uso a virtualização com o QEMU para testar softwares em diferentes sistemas operacionais e arquiteturas de processadores.

Eu estava incomodado com o fato de que um convidado muitas vezes obstrui completamente um host e paralisa, enquanto os outros núcleos estão ociosos. Minha suposição é que isso ocorre porque o qemu não iniciará encadeamentos nativos para tarefas paralelas no guest. Se isso for verdade, qual software de virtualização lida com isso de maneira mais inteligente? Estou procurando uma solução que não requeira que o convidado seja modificado (portanto, o Xen não é uma opção).

Eu estava olhando para o KVM, mas ainda não encontrei nenhuma resposta definitiva. Devo dizer que não tenho certeza se compreendi corretamente o suporte SMP, isso faz alguma coisa sobre como as tarefas são paralelizadas no host?

Eu ainda não olhei para o VMWare.

    
por Hanno Fietz 08.05.2009 / 10:09

5 respostas

1

Meu entendimento do funcionamento do nosso ambiente virtual (VMWare) é o seguinte:

Você tem a opção de atribuir CPUs dedicadas a qualquer VM. Atribuir 2 CPUs dedicadas seria o equivalente a uma caixa física de 2 núcleos como você.

No entanto, se você não fizer isso, atribua um determinado número de compartilhamentos de processador a cada VM. Portanto, se você atribuir 100 compartilhamentos a um e 200 compartilhamentos a outro, o segundo computador terá um CPU duplamente potente. Mas os ciclos reais podem ser manipulados por qualquer dos hosts cpus.

Portanto, construir uma máquina com uma única CPU virtual e dobrar os compartilhamentos aumentaria sua velocidade e potência na VM, sem exigir que seu software fosse configurado para SMP.

    
por 08.05.2009 / 17:01
0

Normalmente, o software de virtualização permite que você defina o número de CPUs que a VM pode acessar e permite que você defina um uso mínimo / máximo de cpu usado para todas as CPUs. Isso é certamente verdade para o Hyper-V e o Virtual Server, embora eu não tenha experiência com o QEMU.

O suporte a SMP refere-se à capacidade do host de apresentar uma VM de multiprocessador ao sistema operacional convidado. Se você deseja alocar mais recursos da CPU do host a um convidado, provavelmente é a rota que você precisará fazer.

    
por 08.05.2009 / 10:22
0

Você pode querer ler este documento Gerenciamento de recursos da CPU do vmware.

Embora seja de uma versão antiga do ESX1.5, as versões mais recentes usam a mesma técnica, e mais ainda. A documentação para versões posteriores é disponível aqui , mas não parece ser pesquisada

Abstract: VMware ESX Server provides dynamic control over both the execution rate and the processor assignment of each scheduled virtual machine. The scheduler performs automatic load balancing on multiprocessor systems.

    
por 08.05.2009 / 13:53
0

Você também pode pesquisar na caixa virtual .

    
por 08.05.2009 / 16:22
0

A documentação do QEMU não é muito clara; usando o "-smp < num de cores >" A opção permite que você emule mais de uma CPU, mas não está claro se isso é real smp em vários núcleos de host ou se efetivamente "encadeamentos" está vinculado a um único núcleo.

Os produtos da VMware distribuem a carga por vários núcleos, mas tenha cuidado ao agendar problemas com convidados ocupados, o que afetará o desempenho geral. Mais informações aqui .

    
por 10.05.2009 / 11:33