Qual é a diferença de desempenho de uma máquina virtual versus o host físico?

7

Onde eu trabalho, estamos rodando PCs relativamente poderosos usando o Debian Linux Distribution. No entanto, para certos programas que precisamos instalar, seria melhor ter o CentOS e essas seriam nossas principais ferramentas de trabalho. Mudar o sistema operacional para todos os computadores em nosso local de trabalho é uma possibilidade, mas estamos tentando decidir se usar o VirtualBox é uma opção melhor para simplificar.

Isso tudo depende do seguinte ponto. Os programas que precisamos executar são simuladores, que são tarefas muito intensivas em processamento, que podem facilmente rodar até uma hora ou mais cada vez que uma simulação é lançada. Precisamos decidir se a degradação do desempenho ao usar o Virtual Box é grande o suficiente para merecer nossa mudança de sistema operacional.

Então, minha pergunta é se alguém pode verificadamente me dizer qual é o desempenho da execução de uma tarefa intensiva do processador na caixa virtual versus executá-la no PC nativo?

Obrigado.

    
por aarelovich 03.02.2016 / 09:36

3 respostas

9

Para programas de processamento de números (muito ligados à CPU), deve haver quase zero de desempenho para a VM. As instruções são executadas diretamente na CPU, que é a mesma para o host e a VM.

Mesmo para tarefas de compilação sérias, a diferença de desempenho é dificilmente notada. Nós rodamos o CentOS VMs no VMware no Windows.

Como você está executando o Linux no host, você também pode considerar o KVM (Kernel Virtual Machine) em vez do VirtualBox. É uma série de módulos do kernel que fornece serviços de virtualização no Linux, usando as extensões de virtualização Intel VT-x disponíveis na maioria das CPUs modernas. O QEMU usa o KVM como um acelerador para executar o código x86 diretamente na CPU do host.

Basta instalar o virt-manager para testá-lo.

    
por 03.02.2016 / 11:48
4

Não há uma única resposta boa para isso. Depende muito de como você usa uma VM e em quais programas.

Por exemplo o uso do VMWare (um hypervisor tipo 2) e um programa vinculado à CPU resultou em uma velocidade quase total da CPU. Se eu usasse o mesmo hipervisor e um programa com muitas chamadas de sistema, teria uma séria lentidão.

E as coisas também mudam quando você usa um sistema operacional de hipervisor tipo 1 (sem convidado). E mesmo entre aqueles que você tem muitas variações. Por exemplo. Xen com 5 (IIRC do último fim de semana FOSDEM falar em Xen) modos que ele suporta. De HW usando para para virtualizado.

Para recapitular: conforme solicitado, pode variar de quase nenhuma lentidão a lentidão mais séria.


Agora, se eu me concentrar no VirtualBox, esse é um hypervisor tipo 2. Programas puramente CPU ligados devem estar bem.

    
por 03.02.2016 / 09:53
3

Na verdade, parece que o Docker pode ser uma opção ainda melhor para o que você está fazendo. O Docker fornece contêineres, que são sandbox isolados que são executados no mesmo kernel. A sobrecarga da chamada do sistema / IO é zero, já que seus processos no container não são diferentes daqueles no host.

Como você já está executando o Linux, o Docker seria uma ótima maneira de fornecer um ambiente CentOS sem ter que reinstalar todas as suas máquinas.

Além disso, confira meu utilitário, Scuba , que facilita a execução de coisas como construções dentro de um contêiner do Docker. Em vez de executar make , você executaria scuba make . É tudo!

    
por 24.10.2016 / 15:03