VMware - Uma VM de 1 vCPU pode usar mais de um núcleo físico ao mesmo tempo?

1

Suponha que eu tenha um host ESX físico com UM processador de quatro núcleos e hyper-threading desabilitado. Isso significa que tem um total de 4 núcleos físicos ou pCPUs. Eu crio uma única VM neste host VMware. Eu atribuo essa VM para ter 1vCPU e não coloco limite de CPU.

Pergunta: Se a VM está executando um aplicativo "cpu killer" que exige cada vez mais ciclos de cpu, a VM pode acabar consumindo todos os 4 núcleos físicos subjacentes a qualquer momento?

Eu acho que a resposta é não. Uma única VM de vCPU só pode consumir no máximo 1 valor de capacidade de núcleo físico em qualquer momento no tempo. Portanto, no meu exemplo, como não há outras VMs em execução, o VMware agendará a VM para ser executada em um núcleo físico. Quando esse núcleo físico é 100% consumido, a utilização da CPU da VM atingirá 100% e é isso. Os outros 3 núcleos ficarão praticamente ociosos. Corrigir?

    
por RealVirtualGuy 27.09.2013 / 07:25

2 respostas

3

If the VM is running a "cpu killer" application that keeps demanding more and more cpu cycles, could the VM end up fully consuming all the 4 underlying physical cores at any given moment in time?

Não.

So, in my example, since there are no other VMs running, VMware will schedule the VM to run on one physical core, When that physical core is 100% consumed, the VM's CPU utilization will latch to 100% and that's it. The other 3 cores will mostly sit idle. Correct?

Sim, está correto.

A virtualização não é mágica - um núcleo ainda é um núcleo e, se alocada a uma única CPU, sua VM só conseguirá consumir 1 núcleo de ciclos de CPU.

    
por 27.09.2013 / 07:33
-1

depende se o seu programa é codificado com vários threads. Por exemplo, você pode pedir que um thread calcule algo em paralelo com outro thread fazendo alguma outra tarefa.

Agora, se você tiver apenas um núcleo ... então seus encadeamentos de programa só poderão ser executados em conjunto (um atrás do outro) e eles não serão executados em paralelo.

No entanto, se você estiver em um mundo de VMs, seu "núcleo" será, na verdade, sua vCPU. O VMware é inteligente o suficiente para reconhecer que os threads em tandem em uma vCPU podem ser distribuídos por vários núcleos físicos. Supondo que você não tenha ativado a afinidade da CPU e supondo que haja núcleos sobressalentes no momento, a VMware poderá aproveitar essa oportunidade.

    
por 22.11.2013 / 11:00