¿Por qué un invitado de Ubuntu en VirtualBox funciona muy, muy lentamente?

174

Actualmente estoy usando Ubuntu 12.04 LTS como máquina host, y he virtualizado tres máquinas:

  • un invitado de Xubuntu 12.04
  • un invitado de Windows 7
  • un invitado Ubuntu 12.10

Todos los invitados tienen la misma configuración predeterminada de VirtualBox, ¡pero Ubuntu 12.10 es más lento!

¡La instalación tomó 1h 40 min! (Normalmente, demora 40 minutos). Ahora es imposible de usar, y todas las operaciones son muy, muy lentas.

Estoy usando VirtualBox versión 4.2.4.

¿Alguna idea?

¿Por qué es lento? ¿Y cómo puedo hacerlo más rápido?

    
pregunta Giorgio 28.10.2012 - 20:26

6 respuestas

36

He oído que tiene algo que ver con el hecho de que eliminaron Unity 2D o de alguna manera, el cambio a 3D Unity solo ralentiza el rendimiento de la VM debido a la gran dependencia de que la CPU maneje más de lo que solía hacerlo. El podcast de Linux Outlaws habló un poco, pero me olvidé del episodio.

Actualización: el problema es que las Adiciones de invitados de Virtualbox no proporcionan aceleración 3D en 12.10. Ver Ubuntu 12.10 incapaz de usar la aceleración 3D. No se puede generar DRM .

    
respondido por el Bret 28.10.2012 - 21:02
281

Ubuntu 12.10 ya no incluye Unity 2D , que se implementó para plataformas que no pueden proporcionar aceleración 3D. En cambio, Ubuntu 12.10 tiene Unity ejecutado bajo LLVM, haciendo que el código destinado a la GPU se ejecute en la CPU. Es mucho más lento que usar la GPU.

Para comprobar si su invitado Ubuntu 12.10 está utilizando la aceleración 3D, ejecute este comando:

$ /usr/lib/nux/unity_support_test -p
Not software rendered:    no
Not blacklisted:          yes
GLX fbconfig:             yes
GLX texture from pixmap:  yes
GL npot or rect textures: yes
GL vertex program:        yes
GL fragment program:      yes
GL vertex buffer object:  yes
GL framebuffer object:    yes
GL version is 1.4+:       yes

Unity 3D supported:       no

Como puede ver, "No software prestado" y "Unity 3D compatible" ambos devuelven "no" en este ejemplo, lo que significa que Unity está utilizando LLVMpipe lento.

Cómo habilitar la aceleración 3D (solo VirtualBox 4.2.x)

Estas instrucciones están destinadas para VirtualBox 4.2.4 o 4.2.6, instaladas desde el sitio web de VirtualBox, no desde el repositorio de Ubuntu. Las versiones futuras de VirtualBox pueden solucionar este problema automáticamente o pueden necesitar una solución alternativa.

  1. Instale VirtualBox Oracle VM VirtualBox Extension Pack.
  2. Cree una instancia de VirtualBox e instale Ubuntu 12.10 en ella.
  3. Instale algunos paquetes necesarios para las adiciones de invitados:

    sudo apt-get install linux-headers-$(uname -r) build-essential
    
  4. Instale las adiciones de invitado haciendo clic en Dispositivos, Instalar adiciones de invitado y ejecutando este comando desde el directorio del CD-ROM:

    sudo ./VBoxLinuxAdditions.run
    
  5. Agregue el controlador vboxvideo a la instancia ejecutando:

    sudo bash -c 'echo vboxvideo >> /etc/modules'
    
  6. Apague la instancia de VirtualBox.
  7. Abra la configuración de la instancia de Virtualbox, vaya a "Pantalla" y marque "Habilitar aceleración 3D".
  8. Arranque su huésped Ubuntu 12.10 y verifique que la aceleración 3D esté funcionando ejecutando:

    /usr/lib/nux/unity_support_test -p
    

Si Windows parece desaparecer , instale CompizConfig Settings Manager y desactive el objeto Framebuffer (FBO) en la sección OpenGL:

  1. Instalar el Administrador de configuraciones de CompizConfig:

    sudo apt-get install compizconfig-settings-manager
    
  2. Ejecute el Administrador de configuraciones de CompizConfig:

    ccsm
    
  3. Seleccione la sección OpenGL y luego desmarque la opción Objeto Framebuffer. Si esto soluciona el problema, debe ser inmediatamente visible. No se requiere reiniciar.
respondido por el Flimm 09.11.2012 - 12:43
11

Parece que los desarrolladores de software de VirtualBox están trabajando en una solución, pero aún no está lista; consulte la publicación del foro Discuta la versión 4.2.4 .

Hay un hilo que discute esto en fourm post Ubuntu 12.10 "virtualmente" inutilizable

    
respondido por el Andrew B 29.10.2012 - 15:58
7

No sé acerca de la configuración de la GUI necesaria para hacer que Unity se pueda utilizar dentro de una VM, pero sí sé cómo ajustar las VM en virtualbox, KVM y otros. Nunca tuve suerte haciendo que Unity funcione bien en cualquier entorno virtual. Nunca lo intenté demasiado, prefiriendo usar WM puro o un DE basado en LXDE.

Configuraciones más detalladas están aquí: enlace

Resumen:

  • Los valores predeterminados de Vbox no son buenos para las versiones de Ubuntu que se parecen a una GPU real.
  • Al girar las unidades de disco duro, asigna previamente todo el disco virtual. En las unidades de estado sólido, no importa.
  • Asigne solo el almacenamiento que necesita. Mantenga archivos grandes en otro lugar, fuera de vStorage.
  • Nunca asigne más CPU o RAM de lo que debería. 1 vCPU probablemente sea suficiente.
  • Deje 1GB de RAM para HostOS. No vuelva a comprometer RAM.
  • Utilice los controladores VirtIO para Almacenamiento y Redes. Los invitados modernos de Linux respaldan esto.
  • Para invitados de Windows, use los controladores SATA (almacenamiento) y Intel PRO / 1000 (red). Es posible usar controladores virtio en Windows, es un poco más difícil.
  • Habilite ACPI y AHCI para todos los invitados desde 2003, WinXP y versiones posteriores.
  • Las máquinas virtuales de escritorio deberían obtener todos los 128MB de vRAM de pantalla
  • Las máquinas virtuales de servidor deberían permanecer con 9 MB de vRAM; no lo desperdicies.
  • Evite las configuraciones de aceleración 2D y 3D, hasta que tenga todo lo demás funcionando de la forma que desee. Ubuntu / Unity hace cosas malas cuando esto está habilitado. Puede llevar un Core i7 al suelo.

Hay muchos consejos de rendimiento de la GUI en las otras respuestas. Esos también son probablemente válidos. Estos mismos consejos se aplican a KVM, VM-Player y otros hipervisores virtuales. Estos también funcionan para servidores.

Buena suerte.

    
respondido por el JohnP 10.02.2013 - 20:16
4

Logré buenos resultados al retroceder de Unity a GNOME. Puede hacerlo instalando GNOME-session-fallback desde el centro de software y luego seleccionándolo en la pantalla de inicio de sesión.

ver: enlace para obtener un tutorial detallado al azar

    
respondido por el Nanne 29.10.2012 - 15:16
1

Para habilitar 3D, primero tendrá que actualizar los encabezados de Linux

$ uname -r
$ sudo apt-get install linux-headers-$(uname -r)
$ sudo apt-get autoremove
$ sudo apt-get install build-essential

Ahora inserta vitualbox guest iso de los dispositivos y para instalarlo manualmente

$ cd /media
$ ls
$ cd username
$ ls
$ cd VBOX*
$ ls
$ sudo ./VBoxLinuxAdditions.run

Inserte vboxvideo en / etc / modules

$ sudo nano /etc/modules

Agregue "vboxvideo" al final del archivo

loop
lp
vboxvideo

Reinicia la máquina

$ sudo reboot

Verifique "No se procesó el software" y "Unity 3D compatible" está habilitado o no después de reiniciar

$ /usr/lib/nux/unity_support_test -p

Lo siguiente que desea hacer es aumentar la memoria de video. Busque el archivo .vbox

$ nano /home/username/VirtualBox VMs/ubuntu/ubuntu.vbox

Reemplazar

<Display VRAMSize="128" monitorCount="1" accelerate3D="true" accelerate2DVideo="false"/>

Para

<Display VRAMSize="256" monitorCount="1" accelerate3D="true" accelerate2DVideo="false"/>

source: Cómo solucionar el bajo rendimiento Ubuntu 13.04 corriendo en virtualbox

    
respondido por el user223973 21.02.2014 - 03:58

Lea otras preguntas en las etiquetas