horst86
Goto Top

Hyper-V und vCPUs?

Hallo Leute,

ich versuche gerade in meinem Kopf die Zuordnung von vCPUs zu ordnen.

Über unterschiedliche Quellen habe ich jetzt zwei abweichende Antworten herausgelesen.

Ich habe einen E-2388G mit 8 Cores und 16 Threads.

In einem Forum habe ich gelesen, dass die physischen Kerne ausschlaggebend sind. In meinem Fall 8 Cores.
Mit einer Überbuchung von 3:1 könnte ich also 24 vCPUs auf meine VMs verteilen.

In einem Artikel über Hyper-V steht allerdings, dass die logischen Prozessoren als Grundlage dienen. In meinem Fall also 16 Threads.
Bei einer Überbuchung von 3:1 ergibt das dann 48 vCPUs.

Jetzt bin ich natürlich ein bisschen verwirrt und würde mir eine eindeutige Antwort wünschen face-smile

Wenn ich mir so die Auslastungen von meinem Host (30%) und den VMs(70-100%) anschaue, vermute ich, dass das zweite Beispiel richtig ist und ich meinen VMs aktuell zu wenig Ressourcen zur Verfügung stelle.

Letzte Abschlussfrage: Der Host soll ja auch noch seine Arbeit verrichten können. Vergebt Ihr alle vCPUs an die VMs oder gibt es eine Faustformel? Statt (in meinem Fall) 48 vCPUs nur 40 verteilen?

Danke Euch

Content-ID: 6083960714

Url: https://administrator.de/forum/hyper-v-und-vcpus-6083960714.html

Ausgedruckt am: 22.12.2024 um 21:12 Uhr

MirkoKR
MirkoKR 22.02.2023 um 10:47:41 Uhr
Goto Top
Zitat von @Horst86:

Ich habe einen E-2388G mit 8 Cores und 16 Threads.

In einem Forum habe ich gelesen, dass die physischen Kerne ausschlaggebend sind. In meinem Fall 8 Cores.
Mit einer Überbuchung von 3:1 könnte ich also 24 vCPUs auf meine VMs verteilen.

In einem Artikel über Hyper-V steht allerdings, dass die logischen Prozessoren als Grundlage dienen. In meinem Fall also 16 Threads.

Überbuchen macht CPU-seitig und RAM-seitig keinen Sinn!

Starte die VM mit 2 vCPUs und 2 GB RAM und schraub bei Bedarf rauf.

Wenn du die VMs auf NVMe-SSDs liegen hast, sind die trotzdem meist schneller als der Host (persönliche Erfahrung, aber nicht produktiv)
wiesi200
wiesi200 22.02.2023 um 10:58:39 Uhr
Goto Top
Das mit dem Faktor Überbuchung ist eher als Empfehlung zu sehen und nicht als absoluten Wert.
Da musst du etwas spielen.
Eine gewisse Überbuchung kann je nachdem schon Sinn machen aber nicht bis zum unendlichen.
Horst86
Horst86 22.02.2023 um 11:10:17 Uhr
Goto Top
Danke euch beiden.

NVMe´s habe ich noch nicht im Einsatz. Die VMs liegen auf SAS-SSDs im Raid 10.

Ich lese überall, dass eine Überbuchung durchaus Sinn ergibt, wenn nicht alle VMs dauerhaft ausgelastet sind und nur zu bestimmten Zeiten Performance brauchen.

In Rechenzentren wird doch meistens, um Ressourcen nicht ungenutzt zu lassen, auch heftig überbucht und nicht dediziert zugewiesen (außer man bucht das explizit).

Leider ist die Frage nach wie vor offen, was nun als Berechnungsgrundlage gilt. Cores oder Threads?
Ist in meinem Fall die Grundlage die 8 cores (24 vCPUs) oder die 16 Threads (48 vCPUs)

Sorry, ich bin mir nach wie vor nicht so ganz sicher .
lcer00
Lösung lcer00 22.02.2023 aktualisiert um 11:12:04 Uhr
Goto Top
Hallo,

Hyper-V lässt überbuchen ja zu. Also kann man das machen. Als Fehlkonfiguration würde ich das nicht sehen. Zumal der Hypervisor auch CPU braucht und das würde ja keine deiner "Regeln" berücksichtigen.

wie @MirkoKR schrieb, probier es aus.

Gemeint sind übrigens Threads nicht Kerne. Das kannst Du im Gerätemanager überprüfen. Meine i7-10700k zeigt da 16 "Prozessoren" bei 8 Kernen und 16 Threads an. Genau diese "Prozessoren" werden im Hypervisor an die VMs zugewiesen. Das sieht man dann im Gerätemanager der VM. Das ist aber nicht exklusiv sondern eine Aufteilung/Wichtung.

https://www.intel.de/content/www/de/de/products/sku/199325/intel-core-i7 ...

Grüße

lcer
Horst86
Horst86 22.02.2023 um 11:23:38 Uhr
Goto Top
Perfekt!
Genau das wollte ich wissen.
Den Ratschlag werde ich natürlich berücksichtigen und erstmal klein anfangen.
Mich hat die Berechnungsgrundlage und damit das theoretische Maximum an zuweisungsfähigen vCPUs interessiert.

Den Host vergesse ich nicht ;)
Hubert.N
Hubert.N 22.02.2023 um 11:26:41 Uhr
Goto Top
Moin

noch mal als Hinweis: Die der VM zugeteilten Cores müssen dieser exklusiv zur Verfügung stehen, wenn der Hypervisor ihr Rechenzeit zuteilt. Weshalb man eben nur in Maßen überbuchen sollte und es in manchen Szenarien (z.B. Terminalserverbetrieb mit hoher CPU-Last) auch kaum Sinn ergibt.

Gruß
wiesi200
wiesi200 22.02.2023 um 11:34:57 Uhr
Goto Top
Ich hab da auch noch das Thema "Multithreading bei Hyper-V" ausschalten im Hinterkopf.
Aber da bin ich mir Moment wirklich nicht sicher ob da was dran ist.
lcer00
lcer00 22.02.2023 um 11:45:26 Uhr
Goto Top
Weitere Infos hier:

https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/ ...

ab Server 2016 gibt es 2 Varianten.

Grüße

lcer
C.R.S.
C.R.S. 22.02.2023 um 11:49:07 Uhr
Goto Top
Denke es von den VMs her; die Auslastung von 70-100% ist Anzeichen einer Fehlkalkulation: Es wird zu hohe VM-Auslastung tolieriert und dies typischerweise aufgrund einer zu geringen Toleranz gegenüber Überbuchung (wenn bereits adäquat überbucht ist, hast du schlicht zu wenig Host für die VMs). Es gibt natürlich VM-Lasten, die durch die zugegebenen CPUs begrenzt werden müssen und natürlichweise bei annähernd 100% liegen. Das ist aber eher die Ausnahme.

Die vCPU ist ein logischer Kern. Ein physischer Kern entspricht bei Hyperthreading zwei logischen Kernen. Eine VM hat einen vorgegebenen Ressourcenbedarf. In Hinblick auf die Zahl ihrer vCPUs bedeutet das, dass z.B. selbst eine minimale Windows-VM mit weniger als 4 vCPUs in der Regel keinen Sinn ergibt, allein zur flüssigen Update-Installation, AV, Agents etc., weil sie damit ohnehin ggf. nur zwei physische Kerne gleichzeitig belegt. Wenn danach die VMs vernüftig ausgelegt sind, können sie problemlos um einen gewissen Faktor überbucht werden. Sie sollen das eben auch, weil das Scheduling des Hypervisors zur Verdichtung ausgenutzt werden soll und nicht eine CPU "partitioniert" werden soll.

Hyperthreading auszuschalten würde den Bezugspunkt der vCPUs verändern (entsprechend nachteilig ist es, wenn z.B. eine Windows-Azure-VM aufgrund der "Erfahrung" des Admins mit 2 vCPUs angelegt wird, es sich aber auch noch um eine VM-Serie mit Hyperthreading handelt). Aufgrund des dann weniger granularen Schedulings ist dies weniger effizient.

Grüße
Richard
ipzipzap
ipzipzap 22.02.2023 um 19:16:13 Uhr
Goto Top