Primero, te daré la respuesta aburrida. 16. Porque la mayoría de las veces estás usando la virtualización para HACER ALGO. Entonces, si bien podría encender una VM con 1 MB de memoria compartiendo un núcleo con otras 2 VM, no tiene sentido hacerlo.
Entonces, en cambio, veamos cuántas máquinas virtuales concurrentes podría ejecutar hipotéticamente en un servidor moderno. Esto supone que estamos tratando con una configuración de hipervisor tradicional y no con algo como LXC (contenedores de Linux) que complicaría aún más el problema.
Consideremos las posibles limitaciones entonces. Primero, memoria.
- ¿Cuál es el mejor servidor de integración y despliegue continuo?
- ¿Por qué se necesita un personal dedicado para administrar un servidor?
- ¿Cuál es el costo de un servidor?
- ¿Es posible comprimir todo Internet en un hash Alder-32?
- ¿Cómo puedo usar dos servidores para un sitio web, de modo que pueda usar el segundo cuando el primero no funciona correctamente?
Si nos atenemos a la memoria física, su límite será la cantidad de RAM que puede pegar en un solo servidor, ya que todos los hipervisores modernos requieren memoria dedicada para cada VM en ejecución. (El uso compartido de memoria ha estado disponible como una función de “prueba” en algunos hipervisores por un tiempo, pero no conozco ningún uso de producción) Si tiene un servidor con 256 GB de RAM y ejecuta un montón de pequeñas máquinas virtuales que usan 64 MB cada una, teóricamente, podría acumular hasta 4096 máquinas virtuales en ese espacio. Por supuesto, necesitaría dejar algo de memoria disponible para el host, así que saquemos 2 GB para estar en el lado seguro, por lo que tiene 4064 VM.
Para complicar aún más el problema, también puede usar el intercambio para proporcionar memoria para las máquinas virtuales, en cuyo caso puede tener una cantidad virtualmente ilimitada de memoria disponible, pero será increíblemente lenta y la carga de E / S triturará todo el sistema pararse
Pero supongamos que puede proporcionar una cantidad infinita de memoria física rápida a un servidor, o al menos cambiar eso tan rápido que se convierte en un reemplazo adecuado para la memoria física. E incluso pretendamos que los problemas de concurrencia de E / S de alguna manera también desaparezcan mágicamente. ¿Pero qué hay de la CPU?
Todos los hipervisores que conozco brindan cierto grado de división de tiempo para permitirle ejecutar más de una VM por núcleo disponible, por lo que pensaría que esto solo sería un problema de la velocidad de la CPU. Desafortunadamente, la programación es una bestia mucho más complicada. Cuantas más cosas necesite programar, más complejo será el proceso de programación, hasta el punto en que cada núcleo gastará todo su tiempo en programar segmentos de tiempo, y no tendrá tiempo para dedicar tiempo a ninguna VM.
Afortunadamente, no tenemos que gravar demasiado nuestros cerebros para obtener una estimación aquí. Debido a la sobrecarga de programación (entre otros problemas), ejecutar más de 2-3 máquinas virtuales por núcleo es una muy mala idea (dado el estado actual de los planificadores al menos). Supongamos que tiene un servidor de gama alta que utiliza un Xeon E7 de 15 núcleos (que admite hasta 4 sockets), por lo que tiene un total de 60 núcleos disponibles. Teóricamente, podrías disparar en algún lugar cerca de 180 máquinas virtuales en ese tipo de máquina. Entonces, suponiendo que tenga suficiente memoria disponible y que las E / S no se conviertan en un problema (que estoy seguro sucedería mucho antes de la marca de 180), llamaría a 180 máquinas virtuales en un host moderno posible, y tal vez incluso acercándose razonable.
Por supuesto, todo esto supone los hipervisores tradicionales en el hardware del servidor tradicional. Si comienza a buscar soluciones personalizadas que se ejecutan en blades o algún tipo de configuración de supercomputadora, probablemente podría superar la cifra de 180. Y luego también tendría que considerar si un chasis blade todavía califica como “host” o no, porque técnicamente está ejecutando una gran cantidad de hosts pequeños.
Así que digamos que es bueno y digamos que actualmente está en el vecindario de aproximadamente 180 máquinas virtuales en una sola máquina.