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
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
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 6083960714
Url: https://administrator.de/forum/hyper-v-und-vcpus-6083960714.html
Ausgedruckt am: 22.12.2024 um 21:12 Uhr
10 Kommentare
Neuester Kommentar
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.
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)
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
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
Weitere Infos hier:
https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/ ...
ab Server 2016 gibt es 2 Varianten.
Grüße
lcer
https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/ ...
ab Server 2016 gibt es 2 Varianten.
Grüße
lcer
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
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