i9 13900k Performance Cores (p-cores) fest einer VM zuweisen

PWNY

New Member
Nov 29, 2022
18
0
1
Hallo zusammen,

ich möchte gerne die 8 Performance Cores vom 13900k einer VM fest zuweisen.
Ich würde das ganze mit taskset umsetzen. (https://forum.proxmox.com/threads/cpu-pinning.67805/)

Das Problem was ich jetzt habe, woher weiß ich welche der Kerne die Performance Cores sind?
Soweit ich weiß sind die Fest und Wechseln demnach nicht. Ich habe dazu leider nichts finden können.

Vielleicht hat ja einer die Info die ich brauche :-)


Liebe Grüße
- PWNY
 
Ich hab leider keine 13900k zum testen da, aber ich vermute mit lscpu -e kannst du rausfinden, welche die performance cores sind, da sie eine hoehere Taktrate haben (intel spec sheet)
 
Hallo zusammen,

ich möchte gerne die 8 Performance Cores vom 13900k einer VM fest zuweisen.
Ich würde das ganze mit taskset umsetzen. (https://forum.proxmox.com/threads/cpu-pinning.67805/)

Das Problem was ich jetzt habe, woher weiß ich welche der Kerne die Performance Cores sind?
Soweit ich weiß sind die Fest und Wechseln demnach nicht. Ich habe dazu leider nichts finden können.

Vielleicht hat ja einer die Info die ich brauche :)


Liebe Grüße
- PWNY

Es ist übrigens seit Proxmox Version 7.3 möglich CPU pinning direkt im Web UI einzustellen.
 
  • Like
Reactions: noel.
Echt?
Wo genau ist da die Option für? :)
Es sollte unter den CPU Optionen, wenn man das Häkchen Advanced setzt, unter CPU Affinity zu finden sein. Die Syntax für das Feld ist die selbe wie für das Command taskset, da im Hintergrund nichts anderes gemacht wird als taskset zu invoken.
 
Es sollte unter den CPU Optionen, wenn man das Häkchen Advanced setzt, unter CPU Affinity zu finden sein. Die Syntax für das Feld ist die selbe wie für das Command taskset, da im Hintergrund nichts anderes gemacht wird als taskset zu invoken.

Danke dir!
 
Guten Morgen,
ich hätte dazu mal eine Verständnisfrage:

Mein Server hat eine 12900K CPU, sprich 8 P-Cores sowie 8 E-Cores.
1737706942249.png

Testweise, habe ich einer VM mal CPU (!) (nicht Core) 22 und 23 zugewiesen, sprich die letzten beiden.
1737707249958.png

Habe das ganze auch mal auf dem Host via htop geprüft. Sieht soweit gut aus.

Was ich aber noch nicht ganz verstehe:
Der "lscpu" auszug zeigt, das CPU 0-15 die P-Cores sind. Sprich Core 0-7. Ja, die doppelte Anzahl kommt durch die Threads zustande, verstehe ich.

Sollte ich diese aber auch zuweisen, um maximale Performance zu erhalten?
CPU Affinity zielt also auf die CPU nicht Cores (im Bezug auf den lscpu screenshot) ab.

D.h. wenn ich eine VM mit CPU Affinity 0-15 starte, sollte sie alle P-Cores sowie dessen Threads bekommen?
Mir ist klar, das dass nicht ideal ist, alle P-Cores einer VM zuzuweisen, auch wenn dies die einzige neben pfsense ist. Der Host möchte natürlich auch noch etwas haben. Ist jetzt eher ein theoretisches Beispiel :)
 

Attachments

  • 1737706985150.png
    1737706985150.png
    14.9 KB · Views: 2
Hi, das könntest du tun, aber mit dem CPU Typ deiner VM verschenkst du die Performance wieder. Wenn du von den P-Cores profitieren willst musst duch den CPU Typ host nutzen.

Wenn du nur 2 wichtige VMs hast, kannst du die gern auf die P_core pinnen, aber andere VMs können die trotzdem noch nutzen. Nur deine Wichtige VM kann dann keinen E-Cores mehr nutzen.
 
Ist der überhaupt raus gegangen? Ich hatte das schon mal als die Browsersession abgelaufen war. Es wurde mir in der Session angezeigt, aber danach nicht mehr.
 
Ja, ziemlich sicher sogar. Weil ich habe jetzt täglich hier rein geschaut und der Post war bis heute Morgen noch da. Seltsam.
Werde es dann nochmal eben jetzt zusammenfassen, diesmal etwas kürzer (war viel Text).

Ich habe aktuell auf der o.g. CPU 3 VMs laufen:

pfSense
CPU-Type: Host, 2GB RAM, 2 CPUs
Kleine API, auf Win10
CPU-Type: Host, 4GB RAM, 2 CPUs, Limitiert auf max. 80% CPU-Leistung (statt 200%)
Gameserver, WindowsServer 2022
CPU-Type: Host, 100GB RAM, 18 CPUs, höchste Priorität

Bis vor ca. eine Stunde, habe ich keine CPU-Affinity für die VMs genutzt, und den Kernel entscheiden lassen.
Da mein Post hier leider verschwunden ist, zeige ich nochmal was ich jetzt macht habe (wollte es einfach mal ausprobieren).

Gameserver
CPU-Affinity: 0-17
pfSense
CPU-Affinity: 18-21
API
CPU-Affinity: 22,23

Sprich die Gameserver bekommen alle P-Cores inkl. dessen Hyperthreads, sowie zwei E-Cores.
Die E-Cores werde ich aber innerhalb von Windows den Gameservern nicht zu weisen, diese laufen dort also auf CPU-Affinity 0-15.

Hier war die Frage in meinem vorherigen Post, ob Ihr denkt ob das so sinnvoll ist/war? Oder ich Proxmox ebenfalls Kerne reservieren sollte?

Möglich wäre ja auch folgendes:
Gameserver
CPU-Affinity: 1-18
pfSense
CPU-Affinity: 19,20
API
CPU-Affinity: 21,22

Somit wäre 0 (P-Core) und 23 (E-Core) für Proxmox frei. Was sind hier Eure Erfahrungen, wie viel sollte mal für Proxmox "freihalten"?
 
Ja, ziemlich sicher sogar. Weil ich habe jetzt täglich hier rein geschaut und der Post war bis heute Morgen noch da. Seltsam.
Ich bekomme Mails über Threads wo ich gepostet habe. Von diesem Thread habe ich keine Mail bekommen, außer heute zu diesem Post.
Werde es dann nochmal eben jetzt zusammenfassen, diesmal etwas kürzer (war viel Text).

Ich habe aktuell auf der o.g. CPU 3 VMs laufen:

pfSense
CPU-Type: Host, 2GB RAM, 2 CPUs
Kleine API, auf Win10
CPU-Type: Host, 4GB RAM, 2 CPUs, Limitiert auf max. 80% CPU-Leistung (statt 200%)
Warum das Limit?
Gameserver, WindowsServer 2022
CPU-Type: Host, 100GB RAM, 18 CPUs, höchste Priorität
18 CPUs bei 16E und 8P Cores finde ich ungünstig. Da hast du garantiert immer verschiedene Cores in Nutzung.
Außerdem, welche Anwendung braucht denn tatsächlich so viele Cores?
Bis vor ca. eine Stunde, habe ich keine CPU-Affinity für die VMs genutzt, und den Kernel entscheiden lassen.
Da mein Post hier leider verschwunden ist, zeige ich nochmal was ich jetzt macht habe (wollte es einfach mal ausprobieren).

Gameserver
CPU-Affinity: 0-17
pfSense
CPU-Affinity: 18-21
API
CPU-Affinity: 22,23

Sprich die Gameserver bekommen alle P-Cores inkl. dessen Hyperthreads, sowie zwei E-Cores.
Die E-Cores werde ich aber innerhalb von Windows den Gameservern nicht zu weisen, diese laufen dort also auf CPU-Affinity 0-15.

Hier war die Frage in meinem vorherigen Post, ob Ihr denkt ob das so sinnvoll ist/war? Oder ich Proxmox ebenfalls Kerne reservieren sollte?

Möglich wäre ja auch folgendes:
Gameserver
CPU-Affinity: 1-18
pfSense
CPU-Affinity: 19,20
API
CPU-Affinity: 21,22

Somit wäre 0 (P-Core) und 23 (E-Core) für Proxmox frei. Was sind hier Eure Erfahrungen, wie viel sollte mal für Proxmox "freihalten"?
Du kannst das natürlich so testen, aber ich glaube, wenn du den Kernel frei entscheiden lässt, ist die Performance besser.
Der Hypervisor braucht natürlich auch CPU Ressourcen, daher wird der trotzdem immer wieder dazwischen funken müssen bei den verschiedenen Cores.