Pourquoi un invité Ubuntu dans VirtualBox s'exécute-t-il très, très lentement?

174

J'utilise actuellement Ubuntu 12.04 LTS comme machine hôte et j'ai virtualisé trois machines:

  • un invité Xubuntu 12.04
  • un invité Windows 7
  • un invité Ubuntu 12.10

Tous les invités ont les mêmes paramètres par défaut de VirtualBox, mais Ubuntu 12.10 est plus lent!

L'installation a pris 1h40 min! (Normalement, cela prend 40 minutes.) Maintenant, il est impossible de l'utiliser, et toutes les opérations sont très, très lentes.

J'utilise VirtualBox version 4.2.4.

Des idées?

Pourquoi est-ce lent? Et comment puis-je le rendre plus rapide?

    
posée Giorgio 28.10.2012 - 20:26
la source

6 réponses

36

J'ai entendu dire que cela avait quelque chose à voir avec le fait qu'ils ont supprimé Unity 2D , ou en quelque sorte, le passage à 3D Unity ne fait que ralentir les performances de la machine virtuelle en raison de la forte dépendance vis-à-vis de la gestion du processeur. Le podcast Linux Outlaws en parlait un peu, mais j'oublie l'épisode.

Mise à jour: le problème est que les compléments de Virtualbox Guest ne fournissent pas d’accélération 3D au 12.10. Voir Ubuntu 12.10 incapable d’utiliser l’accélération 3D. Ne parvient pas à créer des DRM .

    
réponse donnée Bret 28.10.2012 - 21:02
la source
281

Ubuntu 12.10 n'inclut plus Unity 2D , qui a été implémenté pour les plates-formes ne pouvant pas fournir d'accélération 3D. Au lieu de cela, Ubuntu 12.10 a Unity exécuté sous LLVM, rendant le code destiné au GPU exécuté sur le CPU. C'est beaucoup plus lent que d'utiliser le GPU.

Pour vérifier si votre invité Ubuntu 12.10 utilise l’accélération 3D, exécutez cette commande:

$ /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

Comme vous pouvez le voir, "Pas de rendu logiciel" et "Unity 3D pris en charge" renvoient tous deux "non" dans cet exemple, ce qui signifie qu’Unity utilise LLVMpipe lent.

Comment activer l’accélération 3D (VirtualBox 4.2.x uniquement)

Ces instructions sont destinées à VirtualBox 4.2.4 ou 4.2.6, installées à partir du site Web de VirtualBox, et non à partir du dépôt d'Ubuntu. Les futures versions de VirtualBox peuvent résoudre ce problème automatiquement ou peuvent nécessiter une solution de contournement différente.

  1. Installez VirtualBox Oracle VM VirtualBox Extension Pack.
  2. Créez une instance de VirtualBox et installez Ubuntu 12.10 dessus.
  3. Installez certains packages requis pour les ajouts d'invité:

    sudo apt-get install linux-headers-$(uname -r) build-essential
    
  4. Installez les ajouts d'invité en cliquant sur Périphériques, sur Installer les ajouts d'invités et en exécutant cette commande à partir du répertoire du CD-ROM:

    sudo ./VBoxLinuxAdditions.run
    
  5. Ajoutez le pilote vboxvideo à l'instance en exécutant:

    sudo bash -c 'echo vboxvideo >> /etc/modules'
    
  6. Arrêtez l'instance VirtualBox.
  7. Ouvrez les paramètres de l’instance de Virtualbox, naviguez jusqu'à "Display" et cochez "Activer l’accélération 3D".
  8. Démarrez votre invité Ubuntu 12.10 et vérifiez que l’accélération 3D fonctionne en exécutant:

    /usr/lib/nux/unity_support_test -p
    

Si Windows semble disparaître , installez CompizConfig Settings Manager et désactivez FrameBuffer Object (FBO) dans la section OpenGL:

  1. Installez le gestionnaire de paramètres CompizConfig:

    sudo apt-get install compizconfig-settings-manager
    
  2. Exécutez le gestionnaire de paramètres CompizConfig:

    ccsm
    
  3. Sélectionnez la section OpenGL, puis décochez l’option Objet Framebuffer. Si cela résout le problème, il devrait être immédiatement visible. Aucun redémarrage n'est requis.
réponse donnée Flimm 09.11.2012 - 12:43
la source
11

Il semble que les développeurs de logiciels VirtualBox travaillent sur une solution, mais elle n'est pas encore prête - voir le message du forum Discutez de la version 4.2.4 .

Il y a un sujet de discussion à ce sujet dans le post quatrem Ubuntu 12.10 "virtuellement" inutilisable

    
réponse donnée Andrew B 29.10.2012 - 15:58
la source
7

Je ne connais pas les paramètres de l'interface graphique nécessaires pour rendre Unity utilisable dans une machine virtuelle, mais je sais comment régler les machines virtuelles sous virtualbox, KVM et autres. Je n'ai jamais eu de chance de faire fonctionner Unity dans n'importe quel environnement virtuel. Jamais essayé trop dur, préférant utiliser soit WM pur ou un DE basé sur LXDE.

Des paramètres plus détaillés sont disponibles ici: lien

Résumé:

  • Les valeurs par défaut de Vbox ne sont pas bonnes pour les versions d’Ubuntu qui, comme un vrai GPU.
  • Sur les disques durs en rotation, pré-alloue l'intégralité du disque virtuel. Sur les disques SSD, cela n'a pas d'importance.
  • Allouez uniquement le stockage dont vous avez besoin. Conservez des fichiers volumineux ailleurs, en dehors de vStorage.
  • Ne jamais allouer plus de processeurs ou de RAM que vous ne le devriez. 1 vCPU est probablement suffisant.
  • Laissez 1 Go de RAM pour HostOS. Ne pas surcharger la RAM.
  • Utilisez les pilotes VirtIO pour le stockage et la mise en réseau. Les invités modernes de Linux supportent cela.
  • Pour les invités Windows, utilisez les pilotes SATA (stockage) et Intel PRO / 1000 (réseau). Il est possible d'utiliser des pilotes virtio sous Windows, c'est juste un peu plus difficile.
  • Activer ACPI et AHCI pour tous les invités à partir de 2003, WinXP et versions ultérieures.
  • Les machines virtuelles de bureau devraient recevoir tous les 128 Mo de vRAM d'affichage
  • Les machines virtuelles du serveur doivent rester avec 9 Mo de vRAM; ne le gaspillez pas.
  • Évitez les paramètres d’accélération 2D et 3D, jusqu’à ce que tout le reste fonctionne comme vous le souhaitez. Ubuntu / Unity fait de mauvaises choses lorsque cela est activé. Il peut amener un Core i7 au sol.

Il existe de nombreux conseils sur les performances de l’interface graphique dans les autres réponses. Celles-ci sont probablement valables aussi. Ces mêmes conseils s'appliquent à KVM, VM-Player et autres hyperviseurs virtuels. Celles-ci fonctionnent aussi pour les serveurs.

Bonne chance.

    
réponse donnée JohnP 10.02.2013 - 20:16
la source
4

J'ai eu de bons résultats en revenant d'Unity au GNOME de repli. Vous pouvez le faire simplement en installant GNOME-session-fallback à partir du centre du logiciel, puis en le choisissant sur l'écran de connexion.

voir: lien pour un guide pratique détaillé

    
réponse donnée Nanne 29.10.2012 - 15:16
la source
1

Pour activer le support 3D, vous devez d'abord mettre à jour les en-têtes linux

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

Insérez maintenant l'iso invité vitualbox à partir des périphériques et installez-le manuellement

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

Insérer vboxvideo dans / etc / modules

$ sudo nano /etc/modules

Ajouter "vboxvideo" à la fin du fichier

loop
lp
vboxvideo

Redémarrez la machine

$ sudo reboot

Cochez "Pas de rendu logiciel" et "Unity 3D pris en charge" sont activés ou non après le redémarrage

$ /usr/lib/nux/unity_support_test -p

La prochaine chose à faire est d’augmenter la mémoire vidéo. Recherchez le fichier .vbox

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

Remplacer

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

Pour

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

source: Comment réparer une performance lente Ubuntu 13.04 en cours d'exécution dans une boîte virtuelle

    
réponse donnée user223973 21.02.2014 - 03:58
la source

Lire d'autres questions sur les étiquettes