Donde trabajo estamos ejecutando PC relativamente potentes con la distribución Debian Linux. Sin embargo, para ciertos programas que necesitamos instalar, sería mejor tener CentOS y estas serían nuestras principales herramientas de trabajo. Es posible cambiar el sistema operativo para todas las computadoras en nuestro lugar de trabajo, 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 muy intensivas del procesador 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 cuando se usa Virtual Box es lo suficientemente grande como para merecer 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 intensiva del procesador en una caja virtual en lugar de ejecutarla en la PC nativa.
Gracias.
fuente
No hay una sola respuesta buena a esto. Depende mucho de cómo use una máquina virtual y de qué programas.
Por ejemplo, el uso de VMWare (un hipervisor tipo 2) y un programa puramente vinculado a la CPU produjo una velocidad de CPU casi completa. Si usara el mismo hipervisor y un programa con muchas llamadas al sistema, obtendría una desaceleración grave.
Y las cosas también cambian cuando usa un sistema operativo hipervisor tipo 1 (sin invitado). E incluso entre los que tienes muchas variaciones. Por ejemplo, Xen con 5 (IIRC de los últimos fines de semana FOSDEM talk en Xen) modos que admite. Desde HW usando para para virtualizado.
Para recapitular: como se le preguntó, puede variar de casi ninguna desaceleración a ser más lento.
Ahora, si me concentro en VirtualBox, ese es un hipervisor de tipo 2. Los programas puramente vinculados a la CPU deberían estar bien.
fuente
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 cajas de arena aisladas que se ejecutan sobre el mismo núcleo. La sobrecarga de llamadas / E / S del sistema es cero, ya que sus procesos en el contenedor no son diferentes a los del host.
Como 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, echa un vistazo a mi utilidad, Scuba , que hace que sea fácil ejecutar cosas como compilaciones dentro de un contenedor Docker. En lugar de correr
make
, correrásscuba make
. ¡Eso es todo!fuente