A continuación os listo unos cuantos consejos -unos muy básicos y evidentes, otros a mi parecer no tanto- para incrementar y optimizar el rendimiento de máquinas virtuales basadas en Virtualbox. La mayoría han sido sacados del User Manual de Virtualbox:
- Usar imagenes de disco de tamaño fijo (versus las de expansión dinámica). Se tarda más en generarlas, pero por contra no suponen ninguna penalización al rendimiento (que existe, tanto al momento de reservar nuevo espacio como para gestionar espacio ya reservado, aunque en este último caso el penalty sea menor). Caso de tener imagenes dinámicas, podemos llenar todo su espacio con ficheros temporales -que luego borraremos- para forzar la total expansión y reducir la mayor parte de penalización inherente a este tipo de imagen de disco al realizar operaciones en él.
- Instalar las Guest Additions. Estas no sólo nos ofrecen mayor usabilidad, sino también ganancias en términos de rendimiento gracias al pack de drivers optimizados para las VM's.
- Desabilitar (si dispones de un entorno con tal nivel de seguridad que te lo puedas permitir) el software de antivirus o similares en guests Windows, y disminuir el nivel de interactividad en guests GNU/Linux. Esto último se consigue pasándole el parámetro de inicio al kernel divider=10.
- Usar la virtualización por hardware de los actuales procesadores (Intel-VT o AMD-V). Antes, Virtualbox aconsejaba no usarla alegando que su virtualización por software era mejor y que las extensiones de virtualización por hardware todavía no estaban suficientemente maduras. NOTA: Desde consola, esto lo podemos hacer con el comando VBoxManage modifyvm, habilitando el parámetro --hwvirtex. En este punto cabe considerar habilitar también, si disponemos de ello, habilitar el --nestedpaging y el --vtxvpid.
- Si disponemos de virtualización por hardware (Intel-VT o AMD-V) y lo tenemos habilitado en alguna VM, desde VirtualBox recomiendan habilitarla para todas las VM's gestionadas por un mismo VMM (Virtual Machine Monitor). Por lo visto, VirtualBox sufre una penalización en su rendimiento si mezclamos VM's con virtualización distinta (unas por software y otras por hardware).
- Usar controladoras virtuales SATA: VirtualBox opera más rápido con ellas y consume menos CPU. Para esto, el Sistema Operativo debe soportar AHCI para poder ver la controladora y los discos virtualizados. Windows XP no lo soporta (al menos no hasta el SP2) y necesitaremos drivers para ello. NOTA: Desde consola, esto se opera con VBoxManage storagectl con los parámetros --add y --controller. Tras realizar unas pruebas con dd, puedo ver unos 2Mb de ganancia respecto al controlador IDE.
- Habilitar el adaptador de red paravirtualizado (driver virtio-net). Esto requiere instalar drivers de red. Para Windows, pueden ser bajados del site de KVM, mientras que para GNU/Linux, puede ser configurado a partir de kernels => 2.6.25. Tras hacer una pequeña bateria de pruebas con iperf, puedo ver que el desempeño con el driver virtio-net es inexplicablemente más bajo (sobre unos 6Mbps menos), así que si a alguien también se le ocurre hacer pruebas, se agradecería que las comparta :)
- Finalmente, algo por confirmar es si usar dispositivos de disco duro en raw puede ayudar a incrementar el rendimiento de disco (dado que operamos con una capa de software menos). Eso sí, tenemos que tener en cuenta el aspecto de la seguridad/privacidad, dado que cuando habilitamos esta posibilidad en VirtualBox, a pesar de definirle a una VM únicamente acceso a una partición dada, podrá acceder a las demás en modo readonly.
Comentarios (0) |