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.
quelle
Antworten:
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.
quelle
VBoxManage modifyvm
die Vbox-Hilfedatei an. Es gibt einige Parameter, die die Leistung verbessern können und nicht über die GUI eingestellt werden können.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.
quelle
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.
quelle
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.
quelle