Wie kann die CPU-Auslastung beim Ausführen von Virtual Box verringert werden?

12

Beim Ausführen von VirtualBox ist auf meinem System ein Problem mit der 100% igen CPU-Auslastung aufgetreten. Hier einige weitere Details:

Meine Systeminformationen:

Name von CPU 1: Intel (R) Pentium (R) Dual-CPU T2310 bei 1,46 GHz
Cache-Größe von CPU 1, Ebene 1: 32 KB Datencache. 32K-Anweisungs-Cache.

Cachegröße von CPU 1, Ebene 2: 1024 KB Unified Cache.
CPU 1 Mips: 2926.20
Name von CPU 2: Intel (R) Pentium (R) Dual-CPU T2310 bei 1,46 GHz
Cache-Größe von CPU 2 Level 1: 32 KB Daten-Cache. 32K-Anweisungs-Cache.

Cachegröße von CPU 2 Level 2: 1024 KB Unified Cache.

CPU 2 Mips: 2925.96
64-Bit-CPU? Ja!
Gesamtspeicher: 2,0 GB
Gesamtswap: 6141 MByte


Meine Betriebssysteminformationen:

Kubuntu OS-Version: 11.04
Kernel-Version: 2.6.38-8-generic
Kernel-Arch: i686
Standard-Shell: / bin / bash


Meine Einstellungen für die virtuelle Box:

Betriebssystemtyp: Windows XP
Videospeicher: 32 MB
Beschleunigung: 3D
Basisspeicher: 512 MB

Die Problemdetails:

Nun, jedes Mal, wenn ich Windows XP von meiner VirtualBox aus starte, sehe ich eine fast 100% ige CPU-Auslastung. Ich habe ein langsames System, auch wenn auf meiner gehosteten Windows XP-Version keine Programme ausgeführt wurden.

Ich habe mich gefragt, ob es eine Möglichkeit gibt, mit den Einstellungen zu spielen, damit ich die Leistung etwas verbessern kann. Mein PC ist unter meinem Linux-Betriebssystem relativ schnell. Ich muss wissen, ob es einige Tipps gibt, die ich bei der Konfiguration der Einstellungen meiner VirtualBox befolgen kann, damit ich bessere Ergebnisse erzielen kann.

Anregungen / Ideen werden sehr geschätzt!

CompilingCyborg
quelle
Sie meinen also, Ihre VM läuft langsam oder Ihr System insgesamt? Die CPU, die Sie haben, ist ziemlich schwach - daher würde ich mich nicht wundern, wenn sie beim Ausführen von VMs zu 100% ausfällt.
Slhck
Die CPU ist langsam, aber ich habe XP auf SUSE-Host unter Athlon XP 2800+ ohne Probleme und mit 2 GIB RAM ausgeführt, und dieses System ist um ein Vielfaches schneller als meins. Es sollte in der Lage sein, VirtualBox und XP ohne Probleme in neutraler Umgebung auszuführen. Auch +1 für eine schöne Liste der relevanten Computerspezifikationen.
AndrejaKo
Ich habe dasselbe Problem unter mehreren Betriebssystemen auf demselben Computer gehabt. Zuvor habe ich Linux Mint, Ubuntu, Slax, Fedora und alles, was ich zu tun habe, verwendet. Ich glaube jedoch, dass ich die Leistung ein wenig verbessern kann, wenn ich die Einstellungen meiner VM "richtig" anpassen kann.
CompilingCyborg
Die temporäre Lösung, die ich im Moment benutze, ist eine Endlosschleife, die alle 10 Sekunden einen Bash-Befehl ausführt, um Pagecache, Einträge und Inodes freizugeben. Meine VM konnte ein wenig atmen, nachdem ich über diese verrückte Technik nachgedacht hatte, obwohl dies keine richtige Methode ist, sondern eher ein "Hack".
CompilingCyborg
1
Leider fehlen dem T2310 die Virtualisierungserweiterungen VT-x ( ark.intel.com/Product.aspx?id=32431 ). Infolgedessen verwendet Virtualbox Software, um alle CPU-Anrufe mit hohen Rechten abzufangen, die der Gast tätigen wird Diese Virtualbox selbst benötigt mehr CPU-Leistung, um das Gastbetriebssystem zu bedienen. Außerdem wäre ich gespannt, ob es möglicherweise besser ist, dem Gastbetriebssystem 1 GB RAM im Leerlauf
zuzuweisen,

Antworten:

5

Bei der Bearbeitung meines Kommentars über dem T2310 fehlen die Virtualisierungserweiterungen (VT-x) gemäß Ihrem CPU-Datenblatt unter http://ark.intel.com/Product.aspx?id=32431

Aus diesem Wikipedia-Artikel geht hervor , dass drei grundlegende Faktoren zu einer messbaren Verschlechterung der Leistung der VM und damit zu einer Erhöhung der CPU-Auslastung auf dem Host führen werden:

  • Die binäre Übersetzung wird verwendet, um bestimmte Anweisungen wie POPF neu zu schreiben, die andernfalls unbemerkt fehlschlagen oder sich anders verhalten würden, wenn sie über Ring 0 ausgeführt werden, wodurch die klassische Trap-and-Emulate-Virtualisierung unmöglich wird. Um die Leistung zu verbessern, müssen die übersetzten Basisblöcke kohärent zwischengespeichert werden, sodass Code-Patches (z. B. in VxDs), die Wiederverwendung von Seiten durch das Gastbetriebssystem oder sogar selbstmodifizierender Code erkannt werden.

  • Eine Reihe von Schlüsseldatenstrukturen, die von einem Prozessor verwendet werden, müssen abgeschattet werden. Da die meisten Betriebssysteme ausgelagerten virtuellen Speicher verwenden und der direkte Zugriff des Gastbetriebssystems auf die MMU den Verlust der Kontrolle durch den Virtualisierungsmanager bedeuten würde, muss ein Teil der Arbeit der x86-MMU mithilfe einer Technik in der Software für das Gastbetriebssystem dupliziert werden bekannt als Schattenseitentabellen. Dazu muss dem Gastbetriebssystem der Zugriff auf die tatsächlichen Seitentabelleneinträge verweigert werden, indem Zugriffsversuche abgefangen und stattdessen in der Software emuliert werden.

  • E / A-Geräteemulation: Nicht unterstützte Geräte auf dem Gastbetriebssystem müssen von einem Geräteemulator emuliert werden, der auf dem Hostbetriebssystem ausgeführt wird.

Ein Gastbetriebssystem hat ein großes Risiko für Vorgänge, die die Verwendung von erforderlichen privilegierten Anweisungen erfordern. In der Regel werden diese Kosten durch die Verwendung der AMD-V-Virtualisierungserweiterungen von Intel VT-x und AMD erheblich gemindert. Ihrem Prozessor fehlen diese Erweiterungen, und daher führt die gesamte Erfassungs- und Emulationsarbeit zu Leistungseinbußen.

Meine Empfehlungen wären:

  • Damit die virtuelle Maschine so viel Arbeitsspeicher hat, wie sie benötigt, um den Umfang der auszuführenden Paging-Vorgänge auf ein Mindestmaß zu beschränken, möglicherweise 1 GB oder mehr, abhängig von Ihrer Arbeitslast.

  • Deaktivieren Sie die 3D-Beschleunigung, da alle Anrufe an den 3D-Treiber möglicherweise durch die Emulationsebene geleitet werden müssen und daher möglicherweise teuer für Ihren Prozessor sind.

  • Installieren Sie die Virtualbox Guest Additions für Ihr Gastbetriebssystem, da diese Treiber verwenden, die die virtuelle Umgebung besser unterstützen.

  • Reduzieren Sie die Bildschirmauflösung und die Grafikoptionen in Ihrem Gastbetriebssystem.

  • Halten Sie den Netzwerkzugriff (Internet) auf einem vernünftigen Niveau. Stark netzwerkgebundene virtuelle Maschinen sind selbst mit VT-x teuer und profitieren auch von VT-d (Virtualization Technology for Directed I / O), das von Ihrem Prozessor ebenfalls nicht unterstützt wird.

Mokubai
quelle
2

Meine Antwort bezieht sich nur auf den Titel der Frage, nicht auf einen anderen Text der Frage. Mein Schwerpunkt liegt auf der Leerlauf-CPU-Auslastung mit mehr virtuellen Gästen: (genügend freier Speicher auf dem Host).

Die CPU-Auslastung, die durch den audiodg.exeProzess auf dem Windows-Host beim Ausführen von VirtualBox verursacht wird, ist höher als die Last des inaktiven Gasts. Sie kann leicht verringert oder vollständig entfernt werden, indem das Kontrollkästchen Audio in den Virtualbox-Gasteinstellungen auf der Registerkarte Audio deaktiviert wird . (Kann nur bei geschlossener virt. Maschine deaktiviert werden.)

Der audiodg.exe-Prozess verbraucht ungefähr 5% der CPU für einen Gast, aber es ist eine wichtige Belastung für einen Laptop bei typischen Leerlaufaktivitäten wie dem Bearbeiten von Quellen und hat einen großen Einfluss auf die CPU-Frequenz (Verringerung von 80% auf 40%) und die Lüftergeschwindigkeit und Akkulaufzeit auf dem Laptop. Viele meiner laufenden virtuellen Maschinen benötigen normalerweise keinen Sound oder nur manchmal. (Das Deaktivieren von Audio im Gastbetriebssystem hatte keine Auswirkung, auch keine Pause der virtuellen Maschine, aber die Gasteinstellungen für die virtuelle Box sind wichtig.)

Hynekcer
quelle