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

176

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

  • un invitado Xubuntu 12.04
  • un invitado de Windows 7
  • un invitado de 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, lleva 40 minutos). Ahora es imposible usarlo, y todas las operaciones son muy, muy lentas.

Estoy usando VirtualBox versión 4.2.4.

¿Algunas ideas?

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

Giorgio
fuente
¿Has intentado jugar con las configuraciones? ¿Has intentado instalar ediciones invitadas?
usr12390
Sí, he instalado adiciones de invitados, pero nada parece cambiar ... lo extraño es que he instalado muchas máquinas virtuales con ubuntu u otra distribución, pero solo Ubuntu 12.10 hace esto ... durante la instalación, he dejado todo configuración por defecto, como siempre; las otras 2 máquinas virtuales funcionan bien ...
Giorgio
2
La respuesta de Flimm a continuación solucionó el problema de la lentitud para mí. askubuntu.com/a/214968/107015
JS.

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 del manejo de la CPU más de lo que solía tener que hacerlo. El podcast Linux Outlaws habló un poco sobre eso, pero olvido el episodio.

Actualización: El problema es que Virtualbox Guest Additions no proporciona aceleración 3D en 12.10. Ver Ubuntu 12.10 no puede usar la aceleración 3D. No puede construir DRM .

Bret
fuente
Estoy pensando lo mismo, porque la única diferencia entre otras PC virtuales es que solo hay unidad 3D ... y no puedo usar la aceleración 3D porque mi CPU es un modelo antiguo sin esta función ... así que , Tomaré un procesador nuevo :)
Giorgio
1
No creo que esto sea exacto: es la falta de soporte para X Server 1.13 (de VirtualBox), no Unity lo que causa el problema. Es una distinción importante porque es fácil reemplazar Unity (por ejemplo, con XFCE), pero no sé cómo degradar la versión predeterminada del Servidor X.
Mzzzzzz
1
¿Por qué dices que es un problema X? Para mí, recurrir a gnome lo arregló, por ejemplo. ¿Entonces fue un problema reemplazar a Unity, en lugar de X?
Nanne
@ marcopolo1010, Xubuntu 12.10 tiene XServer 1.13 y tiene un buen rendimiento en VirtualBox (definitivamente mucho más rápido que Ubuntu 12.10). Por lo tanto, debe ser un problema de Unidad.
ignis
Además, si está en una Mac, puede intentar aumentar el número de CPU que le da al invitado. ¡Esto me ayudó muchísimo! Aquí es donde obtuve la fuente para esto: code.dimilow.com/ubuntu-12-10-slow-as-virtualbox-guest-os
Matt Wolfe
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 verificar si su invitado Ubuntu 12.10 está usando 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 se procesó el software" y "Compatible con Unity 3D" 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 a 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 diferente.

  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 requeridos para las adiciones de invitados:

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

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

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

    /usr/lib/nux/unity_support_test -p
    

Si las ventanas parecen desaparecer , instale CompizConfig Settings Manager y deshabilite Framebuffer Object (FBO) en la sección OpenGL:

  1. Instale el Administrador de configuración de CompizConfig:

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

    ccsm
    
  3. Seleccione la sección OpenGL y luego desmarque la opción Objeto Framebuffer. Si esto soluciona el problema, debería ser visible de inmediato. No se requiere reiniciar.
Flimm
fuente
28
Esta es una gran solución, y merece múltiples votos a favor.
ζ--
44
En mi nueva instalación de Ubuntu 12.10 (usando VirtualBox 4.2.4 en Mac OS X 10.6), esto definitivamente aceleró las cosas ... pero hay muchos errores con la pantalla. Windows desaparece, el lanzador no aparece a menos que el tablero esté abierto, etc.
Benjamin Oakes
12
"No se muestra el software" es un nombre de propiedad muy confuso: S
Adam Harte
2
@reprogrammer: tuve el mismo problema. Pruebe los paquetes adicionales del repositorio de Ubuntu en lugar de los últimos que vienen con VirtualBox. Haga esto ejecutando: sudo apt-get remove virtualbox-guest-additions(esto elimina los que instaló) sudo apt-get install virtualbox-guest-additions(esto instala los del repositorio predeterminado) A continuación, abra los controladores adicionales en la configuración (oa través de fuentes de software> controladores adicionales en las últimas versiones de Ubuntu) y seleccione el obvio .
labsin
66
No pude hacer que esto funcione con VirtualBox 4.3.12. La solución para mí para VirtualBox 4.3.12 es instalar una versión más reciente de GuestAdditions como se hace referencia aquí: virtualbox.org/ticket/12941 Específicamente, virtualbox.org/download/testcase/…
Gordon Glas
7

No sé acerca de la configuración de la GUI necesaria para que Unity pueda usarse dentro de una VM, pero sí sé cómo ajustar las VM en virtualbox, KVM y otras. Nunca he tenido suerte de que Unity funcione bien en ningún entorno virtual. Nunca lo intenté demasiado, prefiriendo usar WM puro o un DE basado en LXDE.

Configuraciones más detalladas están aquí: http://blog.jdpfu.com/2012/09/14/solution-for-slow-ubuntu-in-virtualbox

Resumen:

  • Los valores predeterminados de Vbox no son buenos para las versiones de Ubuntu que gustan de una GPU real.
  • Al girar discos duros, preasigne todo el disco virtual. En SSD, 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 las que debería. 1 vCPU es probablemente suficiente.
  • Deje 1GB de RAM para el HostOS. No comprometer más de RAM.
  • Utilice los controladores VirtIO para almacenamiento y redes. Los invitados modernos de Linux apoyan esto.
  • Para los invitados de Windows, use los controladores SATA (almacenamiento) e 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 posteriores.
  • Las máquinas virtuales de escritorio deberían obtener los 128 MB de vRAM de pantalla
  • Las máquinas virtuales del servidor deben permanecer con 9 MB de vRAM; No lo desperdicies.
  • Evite la configuración de aceleración 2D y 3D, hasta que tenga todo lo demás funcionando de la manera que desee. Ubuntu / Unity hace cosas malas cuando esto está habilitado. Puede traer un Core i7 al suelo.

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

Buena suerte.

JohnP
fuente
2
La publicación de blog a la que se vinculó es para Ubuntu 12.04. Ubuntu 12.10 es significativamente diferente, porque ya no incluye Unity 2D, y Unity normal se procesa sobre LLVMPipe cuando no detecta la aceleración de hardware.
Flimm
2
Mi invitado de Ubuntu Server se volvió mucho más rápido después de cambiar la memoria de video de ~ 8MB a 128MB. Lo uso para el desarrollo de Rails.
4

Tuve buenos resultados al regresar de Unity a la alternativa GNOME. Puede hacerlo simplemente instalando GNOME-session-fallback desde el centro de software y luego eligiéndolo en la pantalla de inicio de sesión.

ver: http://www.psychocats.net/ubuntu/classicgnome para un tutorial detallado al azar

Nanne
fuente
En Ubuntu 16.04 el nombre del paquete es gnome-session-flashback. Esto es lo único que parece marcar una diferencia en el rendimiento de la interfaz de usuario para mí. ¡Gracias!
Mustafa
1

Para habilitar 3D, primero deberá 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 inserte la vitualbox guest iso desde los dispositivos e instale manualmente

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

Inserte vboxvideo a / etc / modules

$ sudo nano /etc/modules

Agregue "vboxvideo" al final del archivo

loop
lp
vboxvideo

Reiniciar la máquina

$ sudo reboot

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

$ /usr/lib/nux/unity_support_test -p

Lo siguiente que quiere 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"/>

A

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

fuente: Cómo reparar el rendimiento lento ubuntu 13.04 ejecutándose en virtualbox


fuente