Windows VM mit CPU im Host Passthrough deutlich langsamer


Recommended Posts

Hallo. Ich habe eine Frage.

Auf meinem einen Server mit AMD Ryzen habe ich meine VM'S immer im CPU Mode Host Passthrough betrieben. 

Auf meinem anderen Server mit Intel CPUs habe sind meine Windows VMs sehr träge. Schalte ich um auf "Emulated" rennen sie wieder in gewohnter geschwindigkeit. 

 

Das Blöde ist nur wenn ich in den VMs dann z.b. Docker Desktop oder Hyper-V nutzen möchte geht das nicht (im CPU Emulated mode)

 

Wie bekomme ich das hin das meine VMs im Passthrough modus mit ihrer gewohnten preformance laufen? 

 

IOMMU und HVM ist aktiviert.  

 

URstat.PNG

Link to comment
1 hour ago, FlorianHE said:

Ja hab ich. aber das sollte doch kein unterschied machen oder ? 

 

Doch. Es gibt kein Werkzeug auf der Welt das den Linux Scheduler besser bedient als Linux selbst. Selbst wenn man es glaubt, man schafft es nicht. Man beginnt also damit, dass man Linux alles überlässt. Das testet man. Wenn man damit nicht zufrieden ist kann man immer noch rumfummeln. Und ja, es gibt Situationen in denen man einem der Komponenten absoluten Vorrang einräumen will, aber das probiert man erst im zweiten Schritt:

 

1. CPU Isolation komplett aus:

1461077900_CPUI.thumb.jpg.380212f89024c0fd0582c44ace768ae9.jpg

 

2. CPU Pinning VM komplett an. Das kann man auch in den VM Konfigurationen setzen:

1047812056_CPUP.jpg.27db644c25ad14ee0bf43f31ea0cfdc6.jpg

 

3. Testen.

 

Edited by hawihoney
Link to comment
52 minutes ago, Amane said:

Er meint im Tab CPU Pinning, für die VMs sollten CPU abgetrennt vom restlichen System sein, das hast du?

 

Du verwendest CPU Pinning in Linux? Guck mal was IBM dazu schreibt. Das ist nur für extrem seltene Situationen empfehlenswert:

 

Quote

Do not use CPU pinning, because a successful CPU pinning depends on a variety of factors which can change over time:

CPU pinning can lead to the opposite effect of what was desired when the circumstances for which it was designed change. This may occur, for example, when the host reboots, the workload on the host changes, or the virtual servers are modified.

 

https://www.ibm.com/docs/en/linux-on-systems?topic=management-linux-scheduling

 

Link to comment

Ja, ich habe bedeutend bessere Erfahrungen mit Windows10 VMs gemacht, es fühlt sich nur damit an, als hätte ich ein eigenständiges System.

Auch wenn die Theorie vielleicht was anderes sagt, hab ich eine sehr starke Gaming-VM so. (Zumindest mit 16+ Threads)

Zumindest kann ich so mein System komplett auf die vielen Kerne die ich besitze verteilen..

 

Ich möchte meiner VM eigentlich keine 128 Threrads geben müssen und wenn ich weniger als alle zuweise, ohne Isolation bekomm ich extreme Performenceeinbussen, weil die Threads hin und her springen (das hast du ja bereits erwähnt, dass man alle zuweisen sollte) - oder eben isolation.. ich habe gute Erfahrungen damit!

 

Bei meiner WindowsServer VM bin ich mir nicht ganz sicher, da ich Ruckler (aber nur mit VNC nicht mit RDP) habe seit ich von 2 auf 8 Threads gewechselt habe..

 

grafik.thumb.png.8d586fe208d5b96fb0521ead3cb53d49.png

Edited by Amane
Link to comment

Was ich aber auch für Erfahrungen gemacht habe und evtl. erwähnenswert sein kann ist, dass ich es geschafft hatte meine Windows Maschine neu aufzusetzen und ein komplett lagging System erhalten zu haben.. Nur das Löschen der vdisk der VM und ein formatieren der Platte hat hier geholfen, da sich die Disk irgendwie übers Dateisystem verteilt hat (#konsolidierung) - keine Ahnung. Das Ergebniss des anschliessenden neu Aufstzen, mit der neu formatierten Platte, war dann wieder sehr in Ordnung. 😄

Edited by Amane
Link to comment

okay. Also ich ha jetzt mal einen test gemacht mit dem pinning und leider keinen unterschied feststellen können.

 

Ich hab zum test einfach mal den chrome brower geöffnet und 3 tabs (youtube, facebook und gmail) 

 

mit qemu ist die prozesorlast bei 20-30%

mit passthough zwischen 30-55% 

 

Ich glaub ich werd das mal probieren mit dem neu aufsetzen von windows. villeicht hilft das ja.

 

Link to comment
2 minutes ago, FlorianHE said:

Ich glaub ich werd das mal probieren mit dem neu aufsetzen von windows. villeicht hilft das ja.

Schadet sicher nicht (ist schliesslich Windows 🤣), aber guck wenn dann, dass auch die vdisk gelöscht wird. Nicht einfach "nur" neu aufsetzen.
Aber ob das wirklich helfen wird kann ich nicht garantieren.. Nur zuversichtlich hoffen.
Müsste auch testen mit welchen Einstellungen dein System CPU-technisch am besten klarkommt.

 

Vielleicht gibts noch mehr Erfahrungen mir Problemen aus dem Forum..

Link to comment

hier läuft sowohl die Desktop VM als auch die Gaming VM "fluffig" mit Standard Host passthrough ...

 

und nur mit CPU Pinning und aktivem emulatorpin (außerhalb der isolated ...) ansonsten kommt auch mal gerne ein kurzer Ruckler, mit Pinning und GPU pass, alles top hier, siehe dazu die weiteren Threads hier im deutschen Bereich.

 

Nachtrag, CPU i9-10850k, Core Verteilung

 

0-3 - Unraid

4-15 - Gaming VM (RTX 3080ti) (emulatorpin 0,1)

16-19 - Desktop VM (GTX 1060) (emulatorpin 2,3)

Link to comment
25 minutes ago, alturismo said:

0-3 - Unraid

 

Das klang so, dass du Unraid (nicht einer VM) speziell Cores zuweisen kannst.. Das geht nicht korrekt?

 

*Ne da war ich doof.. alles gut, du meinst dann hast du 4 Threads für Docker (und Unraid) .. ok 👍

Edited by Amane
Link to comment
Just now, Amane said:

Das klang so, dass du Unraid (nicht einer VM) speziell Cores zuweisen kannst.. Das geht nicht korrekt?

 

5 minutes ago, alturismo said:

Settings, CPU Pinning, unten erstmal "isolieren" ... dort wird bestimmt von welchen cores Unraid OS weg bleiben soll

 

doch, genau so ... und ja, Unraid ist dann auf diese cores limitiert ... was ist daran unklar ?

Link to comment
On 4/12/2024 at 9:00 AM, FlorianHE said:

gewohnten preformance

@FlorianHEDarf ich mich nach dem Status erkundigen, hast du deine Maschine neu aufgesetzt und läuft sie wieder zufriedenstellend?

Ziemlich genau 1 Tag nach diesem Topic hat meine Maschine angefangen langsamer zu werden (wie verhext). Und im Zustand ohne laufenden Apps trotzdem sehr beschäfftigt zu wirken.

 

grafik.png.69e1727e531e917b8e9523a07d7d6292.png

 

grafik.png.f74fefec9efc20bf77803be01f90d8f5.png

 

Wesshalb ich meine Maschine auch wieder neu aufsetzen muss, ist mir ein Rätsel, nur im abgemeldetem Zustand kann der CPU wieder durchathmen und ist bei 0%

Im Taskmanager erhalte ich ein anderes Bild wie auf dem Dashboard..

grafik.png.9791fc43e9054c7e7ea2fbdb9a2ecb4e.png

 

Ich werde noch ein paar Tests machen befor ich den Pc neu aufsetze. Z.B. (da es im abgemeldetem Zustand OK ist) einen anderen Benutzer anlegen.

Ich verdächtige auch den automatischen Optimierungsprozess der Disk (SSD defragmentieren), könnte auch schlecht sein für eine vdisk auf dauer.

 

Bin für weitere Tests offen.

 

Grüsse

 

 

Edited by Amane
Link to comment
44 minutes ago, Amane said:

Ich verdächtige auch den automatischen Optimierungsprozess der Disk (SSD defragmentieren), könnte auch schlecht sein für eine vdisk auf dauer.

 

Schau mal hier. Diverse Optimierungsmechanismen für Windows VMs werden hier explizit beschrieben:

 

https://docs.unraid.net/unraid-os/manual/vm-support/

 

Im Übrigen stehe ich nach wie vor zu meinen oben getroffenen Aussagen bzgl. CPU Passthrough ... Ob Threads zwischen 8 Kernen springen oder 128 spielt überhaupt keine Rolle. Technisch ist das ein Kontext-Wechsel des Instruction Pointers und den Registern sowie Pages. Das ist egal wohin der Wechsel erfolgt - ob zu Kern/HT #4 oder #112. In dem einen Fall stehen aber nur 8 zur Auswahl, im anderen Fall 128. Ist wie am Buffet. Wenn von den 8 Schüsseln gerade 2 leer sind ist das blöder als bei 128 Schüsseln ;-)

 

Edited by hawihoney
Link to comment
On 4/19/2024 at 7:59 AM, hawihoney said:

Im Übrigen stehe ich nach wie vor zu meinen oben getroffenen Aussagen bzgl. CPU Passthrough

Ich wusste als ich es schrieb das der kommen wird.. 😂

 

On 4/19/2024 at 7:59 AM, hawihoney said:

Ob Threads zwischen 8 Kernen springen oder 128 spielt überhaupt keine Rolle

Ich möchte das Problem halt nicht durch Hight Performence lösen und möchte meine CPUs so verteilen wie ich will, dafür suche ich eine Lösung und bein überzeugt das es an Windows und abseits des CPU pinning liegt, zumindest bei mir. Es geht ja, so ein halbes Jahr oder so, dann fängt es an (immer noch die Disk in vermutung).

 

Einfach 128 Threads zuweisen, in der hoffnung das ich es dann nicht mehr merke ist für mich nicht der way to go. Wenn ich mal ein Skript oder was auch immer mit allen Threads laufen lasse, wie es mein Backupskript macht, in dem es einfach Subprozesse öffnet bis zu einer CPU Auslastung von... Möchte ich nicht in meiner VM etwas davon mitbekommen.

 

On 4/19/2024 at 7:59 AM, hawihoney said:

Schau mal hier. Diverse Optimierungsmechanismen für Windows VMs werden hier explizit beschrieben:

https://docs.unraid.net/unraid-os/manual/vm-support/

Aber Danke dazu, ich versuch die neue installation mal mit den Tweaks - und ha, ich dachte doch Disk Optimisation ist nicht gut ^^

Edited by Amane
Link to comment
1 hour ago, hawihoney said:

Du denkst Du kannst das besser als der Linux Scheduler? Ist natürlich Deine Entscheidung. Viel Erfolg dabei.

Buah eh.. meld jemand anderes das sie das Feture aus Unraid rausnehmen sollen well du möchtest, dass dein heiss begehrter Linux Schediler das machen soll.. aber geh mir nicht auf den Keks damit.. Es funktiioniert ja super, das was nicht geht ist diese blöde vdisk, vermutlich weil ich so blöde war die Optimierung dieser nicht aus zu machen..

Hab jetzt Windows neu istalliert und alles läuft wieder 1a.

Edited by Amane
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.