
Onde eu trabalho, rodamos PCs relativamente poderosos usando a distribuição Debian Linux. Porém para certos programas que necessitamos instalar seria melhor ter o CentOS e estas seriam as nossas principais ferramentas de trabalho. Mudar o sistema operacional de todos os computadores do nosso local de trabalho é uma possibilidade, mas estamos tentando decidir se usar o VirtualBox é a melhor escolha por simplicidade.
Tudo isso depende do seguinte ponto. Os programas que precisamos executar são simuladores, que são tarefas que utilizam muito o processador e podem facilmente ser executadas por até uma hora ou mais cada vez que uma simulação é iniciada. Precisamos decidir se a degradação do desempenho ao usar o Virtual Box é grande o suficiente para merecer nossa mudança de sistema operacional.
Portanto, minha pergunta é se alguém pode me dizer de forma verificável qual é o impacto no desempenho ao executar uma tarefa com uso intensivo de processador na caixa virtual em comparação à execução no PC nativo?
Obrigado.
Responder1
Para programas de processamento de números (muito limitados pela CPU), deve haver quase zero impacto no desempenho da VM. As instruções são executadas diretamente na CPU, que é a mesma para host e VM.
Mesmo para tarefas sérias de compilação, a diferença de desempenho é quase imperceptível. Executamos VMs CentOS em VMware no Windows.
Como você está executando o Linux no host, você também pode considerarKVM(Máquina Virtual Kernel) em vez do VirtualBox. É uma série de módulos de kernel que fornecem serviços de virtualização no Linux, usando as extensões de virtualização Intel VT-x disponíveis na maioria das CPUs modernas. QEMU usa KVM como acelerador para executar código x86 diretamente na CPU host.
Basta instalar o virt-manager
para experimentar.
Responder2
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 sandboxes isolados executados no mesmo kernel. A sobrecarga de chamada do sistema/IO é zero, pois seus processos no contêiner 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 precisar reinstalar todas as suas máquinas.
Além disso, verifique meu utilitário,Mergulhoo que facilita a execução de coisas como compilações dentro de um contêiner Docker. Em vez de correr make
você correria scuba make
. Isso é tudo!
Responder3
Não existe uma única boa resposta para isso. Depende muito de como você usa uma VM e de quais programas.
Por exemplo, usar VMWare (um hipervisor tipo 2) e um programa puramente vinculado à CPU rendeu velocidade quase total da CPU. Se eu usasse o mesmo hipervisor e um programa com muitas chamadas de sistema, sofreria uma grave lentidão.
E as coisas também mudam quando você usa um sistema operacional hipervisor tipo 1 (sem convidado). E mesmo entre eles você tem muitas variações. Por exemplo, Xen com 5 (IIRC da conversa FOSDEM dos últimos fins de semana no Xen) modos que ele suporta. Desde HW usando até para virtualizado.
Para recapitular: conforme solicitado, pode variar de quase nenhuma desaceleração a muito mais lenta.
Agora, se eu focar no VirtualBox, esse é um hipervisor tipo 2. Programas puramente vinculados à CPU devem funcionar bem.