Virtual Box beste Performance erreichen

ntloader

Commander
Registriert
Juni 2004
Beiträge
2.502
Hi,

ich habe eine virtuelle Windows XP Maschine unter Virtual Box laufen. Die XP Maschine muss ich aus diversen Gründen neu installieren. Bisher war die nicht wirklich sonderlich performant. Das Problem war, dass die Disk maximal ca. 7MB lesen/schreiben konnte. Da ich die Maschine eh neu aufsetze wollte ich fragen, was für Einstellungen (abweichend den Standardeinstellungen für eine neue VM) ich bei Virtual Box am besten einstelle, um ein möglichst performates System zu bekommen. Die Virtual Disks liegen alle auf einer lokalen Platte. Die lokale Platte schaft locher 75MB/s wenn ich was anderes im Host auf die Platte kopiere. Die kann also nicht der Bottleneck sein.
Wie sollte ich die virtuelle Maschine also für ein XP 32-bit konfigurieren?

Grüße, Ntloader
 
Na nicht so unfreundlich!

Trotzdem ein paar Tipps:
1. Die virtuellen Images immer mit fester Größe erstellen und nicht mitwachsen lassen.
2. Alle CPU Erweiterungen in den Optionen der virtuellen Maschine aktivieren (NX, VT-D etc. pp.)
 
Dein prozessor sollte Virtualisiereng haben. Die Option sollte auch in Virtualbox aktiviert sein. Dadurch wird die allgemeine Leistung von Virtual Box immens gesteigert. Es läuft dann fast so, als wäre es direkt auf dein PC installiert. Musst du mal schauen.

Alle i3/5/7 Modelle haben Virtualisierung. Celeron, Pentiums und Atoms nicht.
 
Wie stark ist ggf. die virtuelle Disk fragmentiert und wie stark ist deren Imagefile auf dem Host fragmentiert? Hat die Platte physikalische 4k Sektoren und wenn ja, stimmt das Allginment sowohl auf dem Host als auch der virtuellen Platte (XP macht das Standardmäßig falsch)? Welcher Controller wird emuliert, SATA oder IDE? Es gibt eine Menge Faktoren, die die Geschwindigkeit ausbremsen können.

Womit hast Du die 7MB/s und die 75MB/s überhaupt ermittelt?
 
ntloader schrieb:
@Es geht lediglich um die Disk Performance.

Die aber immens von der Host Hardware abhängig ist. Nicht nur von der verwendeten HDD. Und wenn Du von 75MB/sec auf dem Host sprichst, dann ist das auch nicht sonderlich viel für heute. Und wenn Du nichts weiter zu dem Host erzählst, kann man auch nicht helfen.
 
Was willst du denn wissen? Wenn die Disk vom Host auf dem die VM liegt locker 75 MB/s schafft, wenn man auf dem Host selbst etwas kopiert. In der VM aber nur 5-7MB/s, dann liegt das glaube ich nicht an der Hardware des Host.
 
Hi,

ich habe Virtualbox das letzte Mal vor einiger Zeit benutzt und das war unter Linux (hostseitig), aber wenn ich mich recht entsinne, kannst du einstellen, welche Art von Hostadapter fuer die Festplatte emuliert wird.

Du kannst ja einfach mal zu der bestehenden Maschine eine zweite virtuelle Festplatte hinzufuegen und dabei verschiedene Controller (es muessten PATA, SATA und ein oder zwei SCSI-Varianten gehen). Auf diese Weise kannst du austesten, was am besten funktioniert und genau so setzt du die Maschine dann auf.

Bedenke auch, dass die Fragmentierung deiner Festplatte u.U. ebenfalls die Ursache sein kann. Hast du sie als "alles auf einmal allozieren" oder als "mitwachsend" angelegt (weiss nicht mehr genau, wie das bei VB heisst, aber das ist, was es bewirkt)? Wenn letzteres, dann ist die virtuelle Festplatte gerade auf einer Platte, die viel verwendet wird, sehr stark ueber die Platte verteilt. Das Gast-OS geht aber davon aus, dass es eine zusammenhaengende Platte ist (das weiss ja nichts von der Virtualisierung), so dass das extrem bremsen kann, weil Dinge, die dicht beieinander sein sollten, das gerade nicht sind. Von daher besser die Platte im Stueck (also "alles auf einmal allozieren") so anlegen, dass sie wenig fragmentiert ist (also vorher die Hostplatte defragmentieren). Zumindest das Problem haettest du bei einer SSD tatsaechlich nicht, aber eigentlich solltest du auch bei Virtualbox + Festplatte zumindest in die Groessenordnung der Plattengeschwindigkeit kommen, nicht nur auf ein Zehntel davon.

Bei KVM unter Linux komme ich mit der Strategie, als Platten einfach virtuelle Partitionen des logical volume managers zu nehmen (die haengen dann schon zusammen, wenn ausreichend gross angelegt), im Grunde auf die native Geschwindigkeit aus der VM heraus, und zwar egal, was drunter liegt (Festplatte, SSD, Software-RAID).

Viele Gruesse,

Jan
 
Gerade wenn Du mehrere virtuelle Maschinen hast, dann hast Du natürlich auch mehr parallele Diskzugriffe und wenn die alle auf die gleiche HDD gehen, dann bremsen die sich gegenseitig gewaltig aus. Deshalb ist es dann schon besser, die virtuellen Disks auf eigene Platten zu lagen und noch besser auf eine SSD, denn die haben ja gerade da ihre Stärken.
 
Hi,

Wenn die Disk vom Host auf dem die VM liegt locker 75 MB/s schafft, wenn man auf dem Host selbst etwas kopiert.

Fuer KOPIEREN innerhalb einer Platte ist das anstaendig schnell. Man darf das nicht mit sequentiellen Lesen oder Schreiben verwechseln, bei denen eine moderne Platte locker das Doppelte schafft.

vt-x und svm (also Hardwarevirtualisierung) sind fuer die Plattenperformance egal.

Viele Gruesse,

Jan
 
Holt schrieb:
Gerade wenn Du mehrere virtuelle Maschinen hast, dann hast Du natürlich auch mehr parallele Diskzugriffe und wenn die alle auf die gleiche HDD gehen, dann bremsen die sich gegenseitig gewaltig aus. Deshalb ist es dann schon besser, die virtuellen Disks auf eigene Platten zu lagen und noch besser auf eine SSD, denn die haben ja gerade da ihre Stärken.
Es ist lediglich eine VM.
 
Es gab (oder gibt immer noch) Probleme mit dem Reaktionsverhalten wenn APIC und SMP (also mehrere Kerne) bei einem Windows XP Guest aktiviert werden.
Daher würde ich es zunächst mal ohne I/O APIC und mit nur einer CPU für Dein Windows XP Guest probieren.
Was mit den anderen Einstellung ist kann ich nicht sagen.
Hier wären noch interessant zu erfahren, unter welchem System und mit welcher Hardware Du aktuell Virtual Box laufen lässt.


Update:
Hier noch ein angestaubter Artikel, der aber auch noch mal die APIC Problematik als Performancebremse nennt, die scheinbar immer noch nicht vollständig behoben ist:
http://niccolofavari.com/virtualbox-make-windows-xp-guest-more-than-50-faster-with-these-tips
 
Zuletzt bearbeitet: (Update)
xmarsx schrieb:
Daher würde ich es zunächst mal ohne I/O APIC und mit nur einer CPU für Dein Windows XP Guest probieren.

Hm okay... das ist beides an. Eventuell sollte ich das neue OS ohne die beiden Optionen installieren.
 
Hi,

ich wuerde erstmal die Sache mit den Controllern und der Fragmentierung ausschliessen (siehe mein Post von 18:37) - dazu brauchst du nichts neu zu installieren, sondern kannst es mit einer zweiten virtuellen Platte an der existierenden VM problemlos testen.

Viele Gruesse,

Jan
 
ntloader schrieb:
Hm okay... das ist beides an. Eventuell sollte ich das neue OS ohne die beiden Optionen installieren.

Als Ergänzung:
Wird der APIC deaktiviert wird der normale PIC verwendet. Das "A" steht für "Advanced" Programmable Interrupt Controller. Wer schon länger an PCs schraubt (seit DOS-Zeiten...ja ich bin schon so alt) wird sich vielleicht noch an die Zeit erinnern als man mit 15 IRQs auskommen musste und wo es immer ein Hindernislauf war u.a. Netzwerk und Soundkarten noch den letzten freien Interrupt zuzuordnen (Jumper auf den Karten,...).
Durch den APIC wurde das entschärft da man dann weitere IRQs wählen konnte ohne IRQs doppelt zu vergeben
Desweiteren half der APIC bei SMP-Boards, also Boards mit mehreren CPU-Sockeln, bei der Verwaltung der IRQs plus weitere Dinge.

Die Sache mit APIC und SMP erfordert übrigens tatsächlich eine Neuinstallation des Gast-Systems (hier also XP), da man bei einem installierten XP nicht so ohne weiteres den bei der Installation installierten APIC wieder entfernen kann. Gleiches gilt für den SMP-Kernel von Windows. Es ist nicht unmöglich, aber man bricht sich die Finger beider Hände dabei. ;)

Da die XP Installation relativ schnell erledigt ist, kann man ja mal zwei Installationen, einmal ohne den Haken bei I/O APIC und mit einer CPU und einmal mit I/O APIC und SMP (2 CPUs) testen. Als dritte Option bliebe ggf. noch mit I/O APIC und nur einer CPU.
 
@ntloader
Zu behaupten, dass der Einsatz einer zusätzlichen SSD nichts bringen würde ist schwachsinn.
=> Die I/O Performance Festplatte auf die selbe Festplatte ist langsamer als von Festplatte auf eine andere Festplatte
=> Die I/O Performance von einer Festplatte auf eine SSD ist noch besser und andersherum ebenfalls ( Jenachdem welcher RPM Wert die beteidigten Platten haben )
=> Beim Einsatz einer VM bei der sich das Gastsystem und das Hostsystem die I/O Kapazitäten einer Platte teilen, ist der Speed natürlich deutlich höher wenn die I/O Werte deutlich höher sind, z.B. bei einer SSD.

Wenn man also um Rat fragt und eine knappe und gute Antwort kostenlos erhält, dann ist es recht Frech zu behaupten, dass man nur den Postcounter hochtreiben wolle. ( Die Beiträge sind inzwischen im Aquarium ) Also bitte mehr an die Netiquette halten und nicht frech werden wenn man nicht die erhoffte Antwort erhält. Danke...
 
@suxxess:
Du scheinst nicht zu verstehen worauf ich hinaus wollte. Sicher könnte ich eine SSD kaufen. Die Performance wäre dann vielleicht besser. Das ist aber nicht die Frage weswegen ich das Thema eröffnet habe. Ich habe gefragt, wie ich die Leistung der VM verbessern kann mit bestehenden mitteln. Und dass da noch Luft nach oben ist, habe ich auch geschrieben:
Die lokale Platte schafft locker 75MB/s wenn ich was anderes im Host auf die Platte kopiere
Es geht also darum, den Unterschied zwischen 75MB/s auf dem Host und 7MB/s in der VM zu erklären. Deine Antwort ging folglich etwas am Thema vorbei.

Wenn man also um Rat fragt und eine knappe und gute Antwort kostenlos erhält, dann ist es recht Frech zu behaupten, dass man nur den Postcounter hochtreiben wolle.
Welche Antwort ich für gut halte und welche nicht, lasse ich mir von dir sicher nicht vorschreiben. Und deine Antwort war, wie ich gerade belegt habe am Thema vorbei und somit alles andere als gut.
Aber jetzt lass gut sein, such dir ein anderes Thema, in welchem du mit deinen SSD Tipps prahlen kannst und ende.
 
In Ordnung, lassen wir es gut sein. Die Antwort war sicherlich nicht die bestmögliche Antwort, allerdings hätte der Vorschlag dein Problem mit Sicherheit beseitigt. Haben dir die anderen Tipps denn geholfen?
 
Zurück
Oben