Comment réduire l'utilisation du processeur lors de l'exécution de Virtual Box?

12

Je rencontre un problème avec 100% d'utilisation du processeur sous mon système lors de l'exécution de VirtualBox. Voici quelques détails supplémentaires:

Mes informations système:

Nom du CPU 1: Intel (R) Pentium (R) Dual CPU T2310 @ 1.46GHz
CPU 1 level 1 cache size: 32K Data cache. Cache d'instructions de 32 Ko.

Taille du cache CPU 1 niveau 2: 1024K Cache unifié.
CPU 1 Mips: 2926.20 Nom
CPU 2: Intel (R) Pentium (R) Dual CPU T2310 @ 1.46GHz
CPU 2 niveau 1 cache size: 32K Data cache. Cache d'instructions de 32 Ko.

CPU 2 niveau 2 cache size: 1024K Unified cache.

CPU 2 Mips: 2925,96
CPU 64 bits? Oui!
Mémoire totale: 2,0 Go Échange
total: 6141 Mo


Informations sur mon système d'exploitation:

Version du système d'exploitation Kubuntu: 11.04
Version du noyau: 2.6.38-8-générique
Arc du noyau: i686
Shell par défaut: / bin / bash


Mes paramètres de boîte virtuelle:

Type de système d'exploitation: Windows XP
Mémoire vidéo: 32 Mo
Accélération: 3D
Base Memory: 512 MB

Les détails du problème:

Eh bien, chaque fois que j'exécute Windows XP à partir de ma VirtualBox, je vois l'utilisation du processeur à près de 100%. Je rencontre un système lent même si aucun programme n'était en cours d'exécution sur ma version hébergée de Windows XP.

Je me demandais s'il y avait un moyen pour moi de jouer avec les paramètres afin que je puisse légèrement améliorer les performances. Mon PC est relativement rapide sous mon système d'exploitation Linux. J'ai besoin de savoir s'il y a des conseils que je peux suivre lors de la configuration des paramètres de ma VirtualBox afin que je puisse obtenir de meilleurs résultats.

Toutes les suggestions / idées sont très appréciées!

CompilationCyborg
la source
Vous voulez donc dire que votre machine virtuelle fonctionne lentement, ou votre système tout à fait? Le processeur que vous avez est plutôt faible - je ne me demande donc pas s'il atteint 100% lorsque vous exécutez des machines virtuelles.
slhck
Le processeur est lent, mais j'ai exécuté XP sur l'hôte SUSE sur Athlon XP 2800+ sans aucun problème et 2 GIB de RAM, et ce système est beaucoup plus rapide que le mien. Il devrait pouvoir exécuter VirtualBox et XP en neutre sans aucun problème. +1 également pour une belle liste de spécifications informatiques pertinentes.
AndrejaKo
J'ai été confronté au même problème sous plusieurs systèmes d'exploitation sur le même ordinateur. Auparavant, j'utilisais Linux Mint, Ubuntu, Slax, Fedora et tout ce qu'il semble que je rencontrais des problèmes similaires avec l'utilisation du processeur. Cependant, je crois que si je peux "correctement" modifier les paramètres de ma machine virtuelle, je "pourrai" peut-être améliorer un peu les performances.
CompilingCyborg,
La solution temporaire que j'utilise en ce moment est une boucle infinie qui exécute une commande bash pour libérer la pagecache, les denteries et les inodes toutes les 10 secondes. Ma machine virtuelle a pu respirer un peu après avoir pensé à utiliser cette technique bizarre bien que ce ne soit pas une bonne façon de le faire mais plutôt un "hack".
CompilationCyborg
1
Malheureusement, le T2310 n'a pas d'extensions de virtualisation VT-x ( ark.intel.com/Product.aspx?id=32431 ) et, par conséquent, Virtualbox utilisera un logiciel pour intercepter tous les appels de processeur à privilèges élevés que l'invité fera, cela signifiera que Virtualbox lui-même utilisera plus de puissance CPU pour répondre au système d'exploitation invité. Je serais également curieux de voir si donner 1 Go de RAM au système d'exploitation invité pourrait l'aider à mieux fonctionner car il n'aura pas besoin de faire aussi souvent des défauts de page coûteux pour l'hôte Virtualbox ...
Mokubai

Réponses:

5

En développant mon commentaire ci-dessus, le T2310 manque d'extensions de virtualisation (VT-x) selon la fiche technique de votre CPU à http://ark.intel.com/Product.aspx?id=32431

À partir de cet article Wikipedia , il y a trois choses de base qui entraîneront une dégradation mesurable des performances de la machine virtuelle (et donc une augmentation de l'utilisation du processeur sur l'hôte:

  • La traduction binaire est utilisée pour réécrire certaines instructions, comme POPF, qui autrement échoueraient en silence ou se comporteraient différemment lorsqu'elles seraient exécutées au-dessus de l'anneau 0, ce qui rendrait impossible la virtualisation classique de déroutement et d'émulation. Pour améliorer les performances, les blocs de base traduits doivent être mis en cache d'une manière cohérente qui détecte la correction du code (utilisé dans les VxD par exemple), la réutilisation des pages par le système d'exploitation invité, ou même le code auto-modifiable.

  • Un certain nombre de structures de données clés utilisées par un processeur doivent être masquées. Étant donné que la plupart des systèmes d'exploitation utilisent de la mémoire virtuelle paginée et que l'octroi d'un accès direct au système d'exploitation invité à la MMU entraînerait une perte de contrôle par le gestionnaire de virtualisation, une partie du travail de la MMU x86 doit être dupliquée dans le logiciel du système d'exploitation invité à l'aide d'une technique. connus sous le nom de tableaux de pages masquées. Cela implique de refuser au système d'exploitation invité tout accès aux entrées de table de pages réelles en interceptant les tentatives d'accès et en les émulant à la place dans le logiciel.

  • Émulation de périphérique d'E / S: les périphériques non pris en charge sur le système d'exploitation invité doivent être émulés par un émulateur de périphérique qui s'exécute dans le système d'exploitation hôte.

Un système d'exploitation invité a une large audience pour les opérations qui nécessitent l'utilisation d'instructions privilégiées qui sont requises et généralement ces frais généraux sont fortement atténués par l'utilisation des extensions de virtualisation Intels VT-x et AMDs AMD-V. Votre processeur n'a pas ces extensions et donc tout le travail de capture et d'émulation entraînera une perte de performances.

Mes recommandations seraient:

  • Pour donner à la machine virtuelle autant de mémoire que nécessaire pour minimiser la quantité de pagination à effectuer, peut-être 1 Go ou plus en fonction de vos charges de travail.

  • Désactivez l'accélération 3D car tous les appels au pilote 3D peuvent très bien devoir être poussés à travers la couche d'émulation et peuvent donc coûter cher à votre processeur.

  • Installez les ajouts d'invité Virtualbox pour votre système d'exploitation invité, car ils utiliseront des pilotes qui prennent mieux en charge l'environnement virtuel.

  • Réduisez la résolution d'écran et les options graphiques de votre système d'exploitation invité.

  • Gardez l'accès au réseau (Internet) à un niveau raisonnable, les machines virtuelles fortement liées au réseau sont chères même avec VT-x et bénéficient également de VT-d (Virtualization Technology for Directed I / O), qui n'est pas non plus pris en charge par votre processeur.

Mokubai
la source
2

Ma réponse est liée au titre de la question uniquement, et non à un autre texte de la question. Mon accent est mis sur l'utilisation inactive du processeur avec plus d'invités virtuels: (suffisamment de mémoire libre sur l'hôte).

L'utilisation du processeur causée par le audiodg.exeprocessus sur l'hôte Windows lors de l'exécution de VirtualBox est supérieure à la charge de l'invité inactif lui-même. Il peut être facilement diminué ou complètement supprimé en désactivant la case à cocher Audio dans les paramètres d'invité Virtualbox sous l'onglet Audio. (Ne peut être désactivé que sur une machine virtuellement fermée.)

Le processus audiodg.exe consomme environ 5% de CPU pour un invité, mais c'est une charge importante sur un ordinateur portable pendant les activités inactives typiques comme l'édition de source et cela a un gros impact sur la fréquence du CPU (diminution de 80% à 40%), la vitesse du ventilateur et la vie de la batterie sur un ordinateur portable. Beaucoup de mes machines virtuelles en cours d'exécution n'ont généralement pas besoin de son ou seulement parfois. (La désactivation de l'audio dans le système d'exploitation invité n'a eu aucun effet, ni pause de la machine virtuelle, mais les paramètres d'invité de virtualbox sont importants.)

hynekcer
la source