Windows-VMs sind extrem langsam, wenn sie von einer externen USB3.0-SSD ausgeführt werden, im Vergleich zu einer Linux-VM und einer USB3.0-Festplatte

2257
MADforFUNandHappy

Lange Info: Ich versuche, eine Windows-Virtualbox vmdk von einer USB 3.0-externen SSD auszuführen. Das System, das ich verwende, ist Arch Linux, das ebenfalls auf dieser externen SSD installiert ist. Die VM läuft einwandfrei, wenn ich sie von der internen SSD lade (während das System auf der externen SSD verwendet wird). Gleiches gilt für eine Linux-VM, die von der externen SSD geladen wird (auch bei Verwendung des Systems auf der externen SSD).

Kurzinfo: Die externe SSD ist eine Samsung 850 evo 512 GB (M2 Verison) mit einem M2-zu-USB-3.0-Adapter. Wie bereits erwähnt, funktionieren andere VMS und wenn die Windows-VM von der internen SSD oder sogar von einer externen USB3.0-Festplatte ausgeführt wird (dies ist langsam, aber immer noch viel schneller als die externe SSD in diesem Fall), funktioniert einwandfrei.

VM-Einstellungen:

16GB ram chipset PIIX3 I/O APIC enabled Hardware Clock UTC Time enabled 4 Cores 100% (4.5Ghz) VT-x enabled 

Problem: Die VM startet ordnungsgemäß, friert jedoch das Host-System ein und erreicht nach ca. 20 Minuten den Anmeldebildschirm. Da es sich um ein Festplattenproblem zu handeln schien, lud ich die virtuelle Maschine von der internen SSD und deaktivierte die Windows-Datenträgerauslagerungsfunktion, um das Schreiben von Festplatten zu reduzieren. Ich habe dann die geänderte vmdk auf die externe SSD kopiert und die Virtualbox auf meinem externen System entsprechend geändert. Daran hat sich aber nichts geändert. (Ich habe sogar den RAM auf 16 GB erhöht).

Vermutung Aus irgendeinem Grund macht die Windows-VM im Vergleich zur Linux-VM eine furchtbare Menge an Festplattenschreibvorgängen. Das Lustige daran ist, dass ich vor einiger Zeit dasselbe mit einer externen USB-3.0-Festplatte gemacht habe, die tatsächlich viel langsamer ist als die SSD (jedoch ich Führen Sie das Host-System nicht auf demselben Laufwerk aus.

Das Problem ist sicherlich nicht die SSD, da ich dieselbe SSD wie eine interne SSD verwende. Der Adapter funktioniert einwandfrei für das Linux-System, die Linux-VM und jedes andere Programm, daher glaube ich auch nicht.

Ich werde versuchen, die Protokolle nach einigen Informationen zu durchsuchen, aber wenn jemand ein anderes Idear hat, wäre ich sehr dankbar.

Frage: Wie kann ich die Leistung der Windows-VM auf meiner externen SSD verbessern und warum benötigt Windows zu viel IO-Verkehr?

Lösungskommentar:

Durch das Writeback-Caching, wie von @Eugen Rieck vorgeschlagen, wurde die VM zwar nutzbar. Die zusätzliche IO-Menge des Hostsystems auf derselben externen SSD war für den USB3.0-Controller (ohne Zwischenspeicherung) zu viel. In Virtualbox finden Sie diese Option unter:

Your_VM_Settings->Storage->select_your_Controller->Attributes->Use Host I/O Cache 

Neben dem von @Eugen Rieck genannten Nachteil scheint es laut @aeichner noch einen weiteren aus dem Virtualbox-Forum zu geben

Der Host-E / A-Cache wird standardmäßig nicht verwendet, da er zu E / A-Zeitüberschreitungen im Gastsystem führen kann, wenn der Host einer hohen E / A-Last ausgesetzt ist und der Hostcache damit nicht zurechtkommt. aeichner, 2011

6

1 Antwort auf die Frage

9
Eugen Rieck

Die schlechte Nachricht: Windows (nur das Betriebssystem, keine Anwendungen) schreibt mehr Plattenschreibvorgänge als Linux. In zwei Größenordnungen können Sie nichts dagegen tun. Darüber hinaus führt es eine Größenordnung von mehr Plattenlesevorgängen durch.

Die gute Nachricht: Wenn Sie Writeback-Caching auf Hypervisior-Ebene (z. B. in VirtualBox) verwenden, können Sie die Situation deutlich verbessern. Dies birgt das Risiko einer Datenbeschädigung, wenn der Host stark ausfällt. Bei einer guten USV sollte dies jedoch überschaubar sein.

Noch mehr: Wenn Sie Snapshots erneut verwenden, haben Snapshots einen signifikanten Schreibverstärkungsfaktor, der in einem solchen Szenario weh tut.

Warum schreibt Windows so viel mehr? Tim vor 7 Jahren 6
@ Tim Es ist schwer zu sagen; Sie können nicht hineingehen und sehen, was die Schreibvorgänge tun (welches Recht müssen _we_ _s _person_-Code von Microsoft sein?). wizzwizz4 vor 7 Jahren 0
Mein einziger Gedanke wäre der Indexer. Wenn Sie die Datei regelmäßig ändern, wird der Indexer ständig ausgeführt. Sie können viele Dinge deaktivieren, wenn Sie SSDs und Windows verwenden. Mein Surface Pro wurde von 4 Stunden pro Ladung (gute Nutzung) auf 5+ Stunden (Ladung) erhöht, wenn ich den Indexer allein ausschaltete. Colin Wiseman vor 6 Jahren 0