web-dev-qa-db-fra.com

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

J'utilise actuellement Ubuntu 12.04 LTS en tant qu'ordinateur hôte et j'ai virtualisé trois ordinateurs:

  • 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 1h 40! (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?

176
Giorgio

J'ai entendu dire que cela avait quelque chose à voir avec le fait qu'ils avaient été supprimés nity 2D , ou le passage à la 3D Unity ne fait que ralentir les performances VM en raison de la grande dépendance à l'égard du processeur. en manipulant plus qu’il n’avait à le faire. Le podcast Linux Outlaws en a parlé un peu, mais j'ai oublié l'épisode.

Mise à jour: le problème vient des ajouts d'invités Virtualbox qui ne fournissent pas d'accélération 3D dans 12.10. Voir buntu 12.10 ne peut pas utiliser l'accélération 3D. Ne réussit pas à créer de DRM.

36
Bret

buntu 12.10 n'inclut plus Unity 2D , qui a été implémenté pour les plates-formes ne pouvant fournir une accélération 3D. Au lieu de cela, Ubuntu 12.10 a Unity exécuté sous LLVM, ce qui rend 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 constater, "pas de rendu logiciel" et "Unity 3D pris en charge" renvoient tous deux "non" dans cet exemple, ce qui signifie que 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é à partir du site Web de VirtualBox, et non du référentiel Ubuntu. Les versions futures de VirtualBox pourront résoudre ce problème automatiquement ou 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 invités:

    Sudo apt-get install linux-headers-$(uname -r) build-essential
    
  4. Installez les ajouts d'invités en cliquant sur Périphériques, 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 de VirtualBox.
  7. Ouvrez les paramètres de l'instance Virtualbox, naviguez jusqu'à "Afficher" 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 les fenêtres semblent disparaître , installez CompizConfig Settings Manager et désactivez FBO (Framebuffer Object) 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.
281
Flimm

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

Il y a un fil en discutant dans four post buntu 12.10 "pratiquement" inutilisable

11
Andrew B

Je ne connais pas les paramètres d'interface graphique nécessaires pour rendre Unity utilisable dans une machine virtuelle, mais je sais comment ajuster les machines virtuelles sous virtualbox, KVM et autres. Je n'ai jamais eu la moindre chance de faire en sorte qu'Unity fonctionne correctement dans un environnement virtuel. N'essayez jamais trop, préférant utiliser WM pur ou un DE basé sur LXDE.

Des paramètres plus détaillés sont disponibles ici: http://blog.jdpfu.com/2012/09/14/solution-for-slow-ubuntu-in-virtualbox

Résumé:

  • Les valeurs par défaut de la Vbox ne sont pas bonnes pour les versions d’Ubuntu qui ressemblent à un vrai GPU.
  • Sur les disques durs en rotation, pré-allouez 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.
  • N'allouez jamais plus de processeurs ou de RAM que vous n'auriez dû. 1 vCPU est probablement suffisant.
  • Laissez 1 Go de RAM pour HostOS. Ne pas trop engager la RAM.
  • Utilisez les pilotes VirtIO pour le stockage et la mise en réseau. Les invités Linux modernes 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 un peu plus dur.
  • Activez ACPI et AHCI pour tous les invités à partir de 2003, WinXP et ultérieurs.
  • Les ordinateurs virtuels de bureau devraient obtenir tous les 128 Mo de vRAM d'affichage
  • Les machines virtuelles de serveur doivent rester avec 9 Mo de vRAM; ne le gaspille pas.
  • Évitez les réglages d'accélération 2D et 3D jusqu'à ce que tout fonctionne comme vous le souhaitez. Ubuntu/Unity fait de mauvaises choses quand cela est activé. Il peut amener un Core i7 au sol.

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

Bonne chance.

7
JohnP

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

voir: http://www.psychocats.net/ubuntu/classicgnome pour un howto détaillé et aléatoire

4
Nanne

Pour activer la 3D prise en charge, 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

Maintenant, insérez vitualbox guest iso à partir de périphériques et à installer 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émarrer la machine

$ Sudo reboot

Cochez "Non rendu par le 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 que vous voulez faire est d’augmenter la mémoire vidéo. Rechercher le fichier .vbox

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

Remplacer

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

À

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

source: Comment réparer les performances lentes ubuntu 13.04 s'exécutant dans virtualbox

1
user223973