Uso da CPU em máquinas virtuais

1

Eu tenho uma máquina host com 1 processador lógico rodando a 2.0GHz com 2 VMs rodando. Cada VM está executando a 100% de utilização (de acordo com o Gerenciador de tarefas dentro da VM). Eu percebo que "100%" não é preciso no sentido de que, na verdade, cada VM está utilizando cerca de 50% dos recursos de CPU disponíveis da máquina host. Somente se eu parasse uma das VMs, a VM virtual estaria realmente usando 100% da CPU física.

Como esse processo funciona? Se o processador físico roda a 2.0GHz, estamos essencialmente criando dois processadores virtuais que rodam a 1.0GHz? Então, quando vemos 100% de utilização em ambas as VMs, estamos falando de 100% de 1,0 GHz em cada uma delas? Como essa percentagem de utilização é derivada em primeiro lugar?

Obrigado!

    
por pauliwago 14.08.2013 / 02:14

2 respostas

3

O uso que você vê dentro da máquina virtual é a porcentagem do tempo que ela queria, seja ela obtida ou não. Essencialmente, 100% significa 100% da CPU disponível para essa máquina virtual.

Se o processador físico é executado em 2.0GHz, o mesmo acontece com os processadores virtuais. No entanto, como existe apenas um núcleo real, somente um dos processadores virtuais pode estar em execução por vez. Quando você vê 100% de utilização em ambas as VMs, você está falando sobre cada VM sempre querendo o máximo de CPU possível. Normalmente, cada um deles chega perto de 50% da CPU disponível.

Não diga coisas assim: "Então, quando vemos 100% de utilização em ambas as VMs, estamos falando de 100% de 1,0 GHz em cada uma delas?" Isso é basicamente um absurdo. Se você conseguir usar um carro que percorra 50 milhas por hora a cada dois dias, não o descreveremos como 100% de 25 milhas por hora. As taxas não funcionam assim. A CPU tem alguma capacidade de trabalho e as máquinas virtuais compartilham isso. Se cada um quiser tudo o que puder, cada um terá cerca de 50% da capacidade da CPU para fazer o trabalho. 2.0GHz é a velocidade do clock do núcleo , não a capacidade de fazer o trabalho. Então não faz sentido dividir isso.

    
por 22.08.2013 / 21:00
1

Em um núcleo de CPU físico, só é possível executar uma VM por vez. O vmkernel muda o núcleo da cpu entre as VMs muito rapidamente. Para você, parece que eles correm na mesma CPU ao mesmo tempo.

    
por 22.08.2013 / 20:12