Descargo de responsabilidad: utilizo Virtualbox ocasionalmente en un sistema de escritorio, pero rara vez ejecuté más de 2 o 3 máquinas virtuales concurrentes junto con un sistema operativo host y aplicaciones. Además, generalmente lo he usado en Mac OS X, que no admite el aumento de memoria y nunca lo he configurado para un entorno de servidor. Esta publicación es un reflejo de alguna experiencia personal con Virtualbox, otros hipervisores y muchas citas del manual. 🙂
Virtualbox generalmente no asignará más memoria de la que proporciona su sistema operativo host (es decir, cada VM de 1 GB de RAM deducirá 1 GB de RAM de su sistema operativo host). Por lo tanto, suponiendo que su host solo necesita 1 GB para ejecutarse correctamente (es decir, no está ejecutando aplicaciones en el host en sí), entonces puede alcanzar un máximo de 30 o 31 invitados en su host de 32 GB.
Árbitro. http://www.virtualbox.org/manual/ch03.html#settings-motherboard
(mire en “Memoria base”)
- ¿Cómo puede un maestro escribir consultas SQL para DBMS?
- Con todas las novedades sobre la computación cuántica, ¿es real la exageración?
- ¿Es posible ejecutar PowerMTA en mi máquina local y qué requisitos se necesitan?
- ¿Cuáles son muchas cosas que la gente no sabe que no puedes hacer en una computadora o en Internet?
- ¿Cuáles son los impactos inminentes (buenos y malos) de la inteligencia artificial en el próximo siglo?
Sin embargo, la función de expansión de memoria le permitirá expandir y contraer la memoria asignada a una VM al quitarla de otra VM. Esto significa que la máquina virtual perdedora no necesitará usar toda esa memoria (la “bloquea” dentro del invitado para que incluso el núcleo no pueda usarla). Por lo tanto, si tiene dos invitados de 1 GB y necesita reasignar 512 MB de uno a otro, es mejor que el huésped perdedor solo tenga 512 MB en uso.
Esto puede ser complicado dependiendo de las aplicaciones que esté ejecutando dentro de su invitado. Es probable que un invitado de Linux almacene en caché los accesos a disco en RAM, y eventualmente parecerá que está utilizando todos sus 1 GB de RAM. (ref. ¡Ayuda! ¡Linux se comió mi RAM!). Esa RAM todavía está disponible para las aplicaciones, pero no sé cómo eso afecta el aumento de la memoria. Además, las aplicaciones como MySQL pueden configurarse para almacenar en caché las consultas SQL, que residirán en la RAM, y durante los períodos de mayor tráfico, Apache puede generar procesos adicionales para manejar las solicitudes adicionales (que usan más RAM).
Que yo sepa, el administrador maneja manualmente los globos de memoria, no asignados dinámicamente por el hipervisor Virtualbox.
Árbitro. http://www.virtualbox.org/manual…
Sin embargo, puede sobrescribir la CPU con bastante facilidad. Puede elegir asignar 1 núcleo virtual por VM (a veces denominado “vCPU” en otros hipervisores) para proporcionar una proporción de sobresuscripción de 4: 1, es decir, 32 VM a 8 núcleos. Hasta donde yo sé, Virtualbox no tiene la limitación de Xen, donde al menos un núcleo debe dedicarse al hipervisor. Si está ejecutando aplicaciones simples de un solo subproceso y / o cargas de trabajo predecibles, esta puede ser la mejor manera de hacerlo. Sin embargo, puede estar ejecutando una aplicación que es multiproceso y funciona mejor con 2 o más vCPU. De hecho, dado que tiene ocho núcleos físicos, sus invitados pueden estar mejor con 4 o incluso 8 CPU virtuales cada uno. Esto proporciona más potencia de procesamiento al invitado cuando lo necesita, pero a expensas de otros invitados si dos o más compiten por 8 núcleos de tiempo de CPU. Dependiendo de la carga de trabajo que haga cada invitado, puede optar por asignar 2 o 4 vCPU a algunos invitados y 8 vCPU a otros invitados. Su kilometraje variará y, desafortunadamente, se responderá mejor mediante prueba y error (y ajustes ocasionales).
Árbitro. http://www.virtualbox.org/manual…
s
20,000 accesos por mes no es mucho … eso es solo alrededor de 27 solicitudes por hora, o aproximadamente 1 solicitud cada 2 minutos (20,000 solicitudes / 720 horas). Si sus aplicaciones en cada invitado son bastante predecibles, una aplicación interna que tiene un número limitado de usuarios, por ejemplo, entonces tener más máquinas virtuales no es un problema. Es posible que deba tomar esas solicitudes y dividirlas por la cantidad de horas de servicio, por ejemplo, durante la semana laboral de 40 horas (que se convierte en ~ 160 horas disponibles por mes, lo que lleva a 125 solicitudes por hora, o 2 por minuto). Por otro lado, si estos invitados están conectados a Internet, entonces tiene el potencial de picos en el tráfico que requieren que un invitado use más recursos de los asignados. Por ejemplo, una aplicación PHP requiere más procesador. Si los 30 invitados con 8 vCPU asignados reciben cada golpe, su host tendrá que pagar impuestos más allá de su capacidad para equilibrar los procesos de invitados entre cada núcleo físico. Diablos, incluso si 30 máquinas virtuales con 1 vCPU son golpeadas simultáneamente, eso es 30 vCPU equilibradas en 8 núcleos.
En general, me gusta comenzar con un modelo “sin suscripción excesiva” y expandirme desde allí. Por ejemplo, comience con 8 máquinas virtuales con 1 vCPU y 1 GB de RAM y vea cómo se comportan en ese host. Obtenga ese rendimiento como línea de base utilizando algún tipo de herramienta de monitoreo (Munin, Zabbix, etc.). Luego, puede intentar agregar máquinas virtuales adicionales hasta que necesite detenerse. Pruebe el rendimiento con herramientas de evaluación comparativa simples como Unixbench (intente ejecutarlo en varias máquinas virtuales simultáneamente). También puede intentar experimentar con otras opciones de vCPU, como 2 o 4 o incluso 8 vCPU.
Cuanto más trabajo tenga que hacer cada invitado, reducirá la cantidad de máquinas virtuales en su sistema. Dependiendo de su hardware y cargas de trabajo, dudo que obtenga más de 24-30 máquinas virtuales en este sistema antes de tener problemas de rendimiento (especialmente porque el aumento de la memoria es un proceso manual).