Windows XP, das als Gast unter Linux VirtualBox ausgeführt wird, ist sehr langsam

1

Wir hatten einen alten Windows XP-Server, auf dem eine Filemaker-Datenbank auf einer 2,6-GHz-Intel-CPU ausgeführt wurde, aber dieser Server ist abgestorben. Es wurde durch eine Box mit zwei 2,4-GHz-Xeon-CPUs und 5 GB RAM ersetzt, auf der Ubuntu 11.04 nativ ausgeführt wird, und Windows wird als VirtualBox-Gast ausgeführt. 2 GB RAM wurden für den Windows-Gast reserviert.

Natürlich verfügen diese alten Xeon-CPUs nicht über die VT-x-Erweiterungen, sodass ich nicht erwarten würde, dass dem VirtualBox-Gast CPUs hinzugefügt werden können, aber die Filemaker-Datenbank läuft mindestens 2-3x langsamer als in dieser Version der alte Server. Ich würde erwarten, dass die Verwendung einer von vier verfügbaren 2,4-GHz-CPUs nicht zu einem so erstaunlichen Unterschied führt.

Ich möchte dieses Setup auch weiterhin verwenden können, da dies auch bedeuten würde, dass wir unseren Linux-Server aus dem Rack entfernen könnten, der auf noch langsamerer Hardware ausgeführt wird (nicht, dass die Systemanforderungen für seinen Job hoch sind obwohl).

Meine Frage lautet also: Warum ist das so langsam? Kann ich irgendetwas tun, um die Situation zu ändern? Oder soll ich jetzt einfach aufgeben und passende Hardware finden?

Bitte beachten Sie: Ich verstehe, dass die "neue" Maschine theoretisch etwa 1% langsamer sein sollte. Sagen Sie mir also bitte nicht, dass dies "in Ordnung" sein sollte. Ich brauche konkretere Antworten (wie in "Ich habe das schon versucht und du solltest X machen"), da es in der realen Welt ungefähr 50% langsamer zu sein scheint. Ich bin dabei, "virtuelle" CPUs für das Multithreading auf Einzelkernprozessoren und möglicherweise den Unterschied in der CPU-Architektur zwischen Xeon- und Pentium 4-CPUs verantwortlich zu machen.

Ernie Dunbar
quelle
4
VirtualBox ist nicht gerade die beste Leistung unter den verfügbaren Virtualisierungsoptionen.
Shane Madden
Sie haben erwähnt, dass der VM weitere CPUs hinzugefügt werden. Beachten Sie, dass dies wahrscheinlich die Leistung verringern würde, anstatt sie zu erhöhen. - Haben Sie iotop / top / sysstat / etc auf dem Host-System ausgeführt, um festzustellen, ob offensichtliche Leistungsprobleme vorliegen?
Zoredache
@zoredache: Ich glaube nicht, dass das Problem bei der Festplatten-E / A liegt und eine CPU ausgelastet ist, wenn der Filemaker-Server ordnungsgemäß ausgelastet ist. Gleichzeitig ändert sich die verwendete CPU fast ständig, was ich irgendwie lustig finde.
Ernie Dunbar
Hoffentlich haben Sie die Virtualbox Guest Additions installiert. Und hoffentlich läuft Ubuntu als Server Edition. Und alle Dual Core Xeons mit dem genannten GHz haben VT-x!
@ Shane Madden: Nun, wenn Sie Vorschläge zur Änderung der Situation haben, bin ich ganz Ohr. :)
Ernie Dunbar

Antworten:

1

Diese CPUs sollten VT haben. Wenn Sie also ein BIOS haben, mit dem Sie es nicht einschalten können, wechseln Sie zu einer anderen Box, mit der Sie VT einschalten können. Sie sollten nicht versuchen, Windows-Gäste ohne VT auszuführen.

Datenbanken sind normalerweise durch zwei Dinge begrenzt. Erstens die Geschwindigkeit der Festplatte und zweitens die Verfügbarkeit von RAM, um die von der Festplatte gelesenen Daten zwischenzuspeichern. Ist es möglich, dass die alte Box für die Datenbankbereitstellung mit einer schnellen Festplatte optimiert wurde und Sie sich jetzt auf einem Server mit einer langsamen Desktop-Festplatte befinden? Es hört sich so an, als hätten Sie eine angemessene Menge an RAM, wenn auf dem Gastserver 2 GB verfügbar sind, es sei denn, dieser Computer hat eine sehr hohe Nachfrage. Wie viele Benutzer greifen gleichzeitig darauf zu?

Wenn Sie gerade die Windows-Festplatte geklont haben, um die VM zu erstellen, ist es möglich, dass einige Konfigurationseinstellungen das Leben erschweren. Hatte die alte Maschine 2 Kerne? Wenn ja, ist es eine gute Idee, die VM 2-Kerne zu testen, da XP oder Filemaker möglicherweise so konfiguriert sind, dass dies erwartet wird.

Michael Dillon
quelle
Tatsächlich gab es in der Diskussion einige Details, die Sie möglicherweise übersehen haben. Diese CPUs sind die alten Xeon-Prozessoren der ersten Generation, Modell 2 gemäß / proc / cpuinfo. Sie sind Single-Core, aber Multithread-fähig, was dem Kernel den Eindruck vermittelt, dass er über 4 CPUs verfügt, mit denen er arbeiten kann. Der ursprüngliche Server verfügt außerdem über 1 Single-Core-Pentium-4-CPU, läuft jedoch mit einer nativen XP-Installation wesentlich schneller. Nach meiner Erfahrung mit dieser Filemaker-Datenbank hängt ihre Leistung stark von der CPU-Geschwindigkeit ab, und Ihr Vorschlag, Windows-Gäste nicht ohne VT auszuführen, ist wahrscheinlich genau dort, wo das Problem liegt.
Ernie Dunbar
@Ernie - Schauen Sie sich VBoxManage modifyvmdie Vbox-Hilfedatei an. Es gibt einige Parameter, die die Leistung verbessern können und nicht über die GUI eingestellt werden können.
Joe Internet
VTx verbessert die Leistung nicht. Dadurch wird der Virtualisierungscode vereinfacht und es ist für einen 64-Bit-Host unerlässlich, einen 64-Bit-Gast zu virtualisieren.
Matt H
@MattH: es auch macht es so , dass Sie können mehrere CPUs zu einem Gastbetriebssystem zuweisen. Das liefert vielleicht nicht wirklich eine bessere Leistung, aber es ist eine Funktion, die für mich deaktiviert ist.
Ernie Dunbar
0

Das Ausführen von XP auf einer VirtualBox auf einem Pentium-4 ist in der Tat in Ordnung, wenn Sie nicht auf Festplatten-E / A angewiesen sind. Ihre Xeons sollten der Aufgabe mit oder ohne VT-Erweiterungen mehr als gewachsen sein. Das Problem ist die Datenträger-E / A.

Wenn Sie eine Samba-Freigabe von einem schnellen Dateiserver aus bereitstellen können und FileMaker dies gerne für seine Daten verwendet, ist dies ein großer Geschwindigkeitsschub.

Stellen Sie außerdem sicher, dass die Virtualbox-Treiber auf der VM installiert sind. Wenn dies nicht der Fall ist, sollte die Installation ein weiterer großer Geschwindigkeitsschub sein.

Wenn Sie können, speichern Sie die VDI-Dateien für die VM auf einem eigenen Laufwerk. Dadurch wird ein Teil des IO-Overheads vermieden. Auch wenn Sie die Filemaker-Dateien auf einer schnellen Samba-Freigabe haben, liest und schreibt Windows die ganze Zeit (Swapfile?).

Und Sie möchten der VM wahrscheinlich nur eine virtuelle CPU geben. Der vorherige Kommentator hat recht, wenn Sie in diesem Fall mehr hinzufügen, wird dies wahrscheinlich die Dinge verlangsamen und nicht beschleunigen.

Viel Glück.

Kyle__
quelle
Ok, ich werde es versuchen, aber das klingt zu kompliziert für eine Situation, die Einfachheit erfordert. Windows sollte in meiner Situation eigentlich nicht auf die Festplatte wechseln müssen, da ich ihm 2 GB RAM zugewiesen habe und der WTM angibt, dass er alle 101 MB PF verbraucht. Aus dem physischen Speicher geht hervor, dass 1,5 GB RAM frei sind. Wenn Filemaker es wirklich wollte, konnte es die gesamte 750-MB-Datenbank in den Arbeitsspeicher laden.
Ernie Dunbar
Nee. Das Laden der Datenbank über das Netzwerk ist definitiv langsamer (ich habe eine besonders langsame Suche mit einer Stoppuhr für jeden Testfall geplant). Filemaker beschwert sich auch, dass es langsamer wäre, wenn ich seine Dateien über das Netzwerk lade, und das klingelt.
Ernie Dunbar
Ich habe auch sichergestellt, dass die VirtualBox OSE-Hostsoftware und die Windows XP-Gastzusätze dieselbe Version haben.
Ernie Dunbar
Vielleicht möchten Sie stattdessen die Nicht-OSE-Version verwenden ... virtualbox.org/wiki/Linux_Downloads
Joe Internet
Drat. Ich habe gesehen, dass es schneller ist, besonders wenn das Laufwerk des Hostsystems verstopft ist. Und die Gastzusätze sind installiert und aktuell. Verlassen Sie die Virtualbox-Benutzeroberfläche ständig? Sie können einen VNC-Server in der VM installieren (oder RDP aktivieren) und Ihre VM mit vboxheadless ausführen. Und ich gehe davon aus, dass Sie alle offensichtlichen Änderungen in Fenstern vorgenommen haben. Klingt so, als müssten Sie die Virtualbox-Foren ausprobieren, um zu sehen, was sie über Geschwindigkeitsoptimierungen sagen. Viel Glück. forums.virtualbox.org
Kyle__
0

Ich persönlich habe festgestellt, dass Virtual Box zwar ein großartiges Produkt ist, es jedoch einige Teile gibt, die im Vergleich zu Bare Metal überhaupt keine gute Leistung bringen.

Der erste Schritt wäre, herauszufinden, wo der Leistungsengpass liegt. Ist es Disk I / O oder Network I / O?

Wenn Sie eine schlechte Netzwerk-E / A bemerken, sollten Sie die paravirtualisierten Treiber für VB verwenden.

Obwohl die jüngsten Versionen von VB sich dramatisch verbessert haben, sind die paravirtualisierten Treiber der richtige Weg, um die beste Leistung zu erzielen.

Beachten Sie auch, dass Datenbankanwendungen den Datenträger häufig verwenden. Ihre Festplatte ist wahrscheinlich kein natives Laufwerk, oder? Eher wie eine Datei in einem Dateisystem.
Erwägen Sie die Verwendung von Raw-Datenträgern vom Gast. Siehe hier: http://www.virtualbox.org/manual/ch09.html

Klicken Sie unter Erweiterte Speicherkonfiguration auf Ich hoffe das hilft.

Matt H
quelle
0

Ich habe einen Windows XP-Gast mit mehreren CPUs und es ist auch langsam. Ich vermute, dass die IO-APIC-Implementierung von Virtualbox langsam ist. Ich habe einige Benchmarks für eine ähnliche Konfiguration wie Ihre gefunden (sogar für ein ähnliches Alter): http://niccolofavari.com/virtualbox-make-windows-xp-guest-more-than-50-faster-with-these-tips

Wahrscheinlich müssen Sie die VM mit nur einer CPU von Grund auf neu installieren. Ich denke, XP erfordert IO APIC, wenn SMP-Konfigurationen unterstützt werden.

Wenn Sie eine neuere CPU anstelle dieser beiden älteren CPUs verwenden, erhalten Sie wahrscheinlich eine Leistungssteigerung, da die Arbeit pro Taktzyklus zunimmt.

Sqeaky
quelle