Onde trabalho, estamos executando PCs relativamente poderosos usando a Distribuição Linux Debian. No entanto, para certos programas que precisamos instalar, seria melhor ter o CentOS e essas seriam nossas principais ferramentas de trabalho. Alterar o sistema operacional para todos os computadores em nosso local de trabalho é uma possibilidade, mas estamos tentando decidir se o VirtualBox é a melhor opção para simplificar.
Isso tudo depende do seguinte ponto. Os programas que precisamos executar são simuladores, tarefas muito intensivas em processador que podem executar facilmente até uma hora ou mais a 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 SO.
Portanto, minha pergunta é se alguém pode me dizer de maneira verificável qual é o desempenho atingido ao executar uma tarefa intensiva do processador na caixa virtual, em vez de executá-la no PC nativo?
Obrigado.
fonte
Não existe uma única resposta boa para isso. Depende muito de como você usa uma VM e de quais programas.
Por exemplo, o uso do VMWare (um hipervisor tipo 2) e um programa puramente vinculado à CPU gerou uma velocidade quase total da CPU. Se eu usasse o mesmo hipervisor em um programa com muitas chamadas de sistema, ocorreria uma desaceleração séria.
E as coisas também mudam quando você usa um SO do hipervisor tipo 1 (sem convidado). E mesmo entre aqueles que você tem muitas variações. Por exemplo, Xen com 5 modos (IIRC do FOSDEM da semana passada conversando sobre Xen) que ele suporta. De HW usando para para virtualizado.
Para recapitular: Conforme solicitado, pode variar de quase sem desaceleração a seriamente mais lento.
Agora, se eu me concentrar no VirtualBox, esse é um hipervisor tipo 2. Programas puramente vinculados à CPU devem estar bem.
fonte
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 sobre o mesmo kernel. A sobrecarga de chamada / E / S do sistema é zero, pois os processos no contêiner não são diferentes dos do 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, confira meu utilitário Scuba , que facilita a execução de coisas como compilações dentro de um contêiner do Docker. Em vez de correr,
make
você correriascuba make
. Isso é tudo!fonte