
Donde trabajo, ejecutamos PC relativamente potentes que utilizan la distribución Debian Linux. Sin embargo para ciertos programas que necesitemos instalar sería mejor tener CentOS y estas serían nuestras principales herramientas de trabajo. Cambiar el sistema operativo de todas las computadoras de nuestro lugar de trabajo es una posibilidad, pero estamos tratando de decidir si usar VirtualBox es una mejor opción por simplicidad.
Todo esto depende del siguiente punto. Los programas que necesitamos ejecutar son simuladores, que son tareas que requieren un uso intensivo del procesador y que pueden ejecutarse fácilmente hasta una hora o más cada vez que se inicia una simulación. Necesitamos decidir si la degradación del rendimiento al usar Virtual Box es lo suficientemente grande como para justificar nuestro cambio de sistema operativo.
Entonces, mi pregunta es si alguien puede decirme de manera verificable cuál es el impacto en el rendimiento al ejecutar una tarea con uso intensivo del procesador en una caja virtual en comparación con ejecutarla en la PC nativa.
Gracias.
Respuesta1
Para los programas de procesamiento de números (muy vinculados a la CPU), el rendimiento de la VM debería ser casi nulo. Las instrucciones se ejecutan directamente en la CPU, que es lo mismo para el host y la VM.
Incluso para tareas de compilación serias, la diferencia de rendimiento apenas se nota. Ejecutamos máquinas virtuales CentOS en VMware en Windows.
Dado que está ejecutando Linux en el host, también podría considerarKVM(Máquina virtual del kernel) en lugar de VirtualBox. Es una serie de módulos del kernel que brindan servicios de virtualización en Linux, utilizando las extensiones de virtualización Intel VT-x disponibles en la mayoría de las CPU modernas. QEMU utiliza KVM como acelerador para ejecutar código x86 directamente en la CPU del host.
Simplemente instale el virt-manager
para probarlo.
Respuesta2
En realidad, parece que Docker podría ser una opción aún mejor para lo que estás haciendo. Docker proporciona contenedores, que son entornos aislados que se ejecutan sobre el mismo kernel. La sobrecarga de llamadas al sistema/IO es cero, ya que los procesos en el contenedor no son diferentes a los del host.
Dado que ya está ejecutando Linux, Docker sería una excelente manera de proporcionar un entorno CentOS sin tener que reinstalar todas sus máquinas.
Además, consulte mi utilidad,Escafandra autónomalo que facilita la ejecución de cosas como compilaciones dentro de un contenedor Docker. En lugar de correr, make
correrías scuba make
. ¡Eso es todo!
Respuesta3
No existe una única buena respuesta para esto. Depende mucho de cómo uses una VM y de qué programas.
Por ejemplo, el uso de VMWare (un hipervisor de tipo 2) y un programa exclusivamente vinculado a la CPU produjo una velocidad de CPU casi completa. Si usara el mismo hipervisor y un programa con muchas llamadas al sistema, sufriría una desaceleración grave.
Y las cosas también cambian cuando se utiliza un sistema operativo hipervisor tipo 1 (sin invitado). E incluso entre ellos hay muchas variaciones. Por ejemplo, Xen con 5 modos (IIRC de la charla FOSDEM del fin de semana pasado sobre Xen) que admite. Del uso de HW a la paravirtualización.
En resumen: según lo solicitado, puede variar desde casi ninguna desaceleración hasta mucho más lenta.
Ahora bien, si me concentro en VirtualBox, ese es un hipervisor tipo 2. Los programas puramente vinculados a la CPU deberían estar bien.