samet22
Goto Top

Wie berechne ich mir die Anzahl der vCPU für HYPER-V aus?

Hallo,

bitte nicht schimpfen, ich habe mich nur selber gerade etwas verwirrt :D

Wie berechne ich mir aus wieviele vCPU's ich im Hyper-V vergeben kann? In unserem neuen Server möchte ich gerne den XEON Gold Prozessor 6244 haben.

1.) vCPU = Kerne * Threads? 8 Kerne * 16 Threads = 128 vCPU's? Kommt mir etwas viel vor ... kann das stimmen?

2.) Der XEON Gold 6244 hat 3,60 GHZ. läuft somit jede vergebene vCPU am Virtuellen Server mit 3,60 GHZ?

3.) Die CPU kann bis "DDR4-2933" verarbeiten. Könnte ich mir trotzdem DDR4-3200 kaufen? Taktet der Server diesen dann Automatisch auf 2933 runter?

DANKE!

lg

Content-ID: 522177

Url: https://administrator.de/forum/wie-berechne-ich-mir-die-anzahl-der-vcpu-fuer-hyper-v-aus-522177.html

Ausgedruckt am: 22.12.2024 um 17:12 Uhr

tomolpi
tomolpi 05.12.2019 aktualisiert um 11:08:00 Uhr
Goto Top
Hi,

vCPUs sind einfach alle Kerne und Threads. 8 Core CPU mit HT = 16 vCPUs.
Oder einfach das, was du im Taskmanager im CPU Diagramm siehst, sind deine vCPUs, die du an Hyper-V verteilen kannst.
Natürlich dem Host auch noch zwei lassen😉.
jenni
jenni 05.12.2019 um 11:15:36 Uhr
Goto Top
Moin,

persönlich würd ich nach AMD EPYC ausschau halten ;)

aber das muss jeder selber wissen...

Gruß
der jenni
samet22
samet22 05.12.2019 um 11:20:01 Uhr
Goto Top
Okey ich verstehe. das bedeutet ich kann hier nur 16 vCPU's zuweißen. ist doch etwas wenig... Würde ich beide Sockets bestücken so könnte ich in Summe nur 32 vCPU's verteilen. Ich würde mindestens 40 brauchen.

Danke für deine Antwort
jenni
jenni 05.12.2019 um 11:24:45 Uhr
Goto Top
.... Würde ich beide Sockets bestücken so könnte ich in Summe nur 32 vCPU's verteilen. Ich würde mindestens 40 brauchen.

--> EPYC 7452 32 Core 64 HT ca.2300 Euronen

der Xeon Kostet schon ca 3200 Euronen
tomolpi
tomolpi 05.12.2019 um 11:26:14 Uhr
Goto Top
Zitat von @samet22:

Okey ich verstehe. das bedeutet ich kann hier nur 16 vCPU's zuweißen. ist doch etwas wenig... Würde ich beide Sockets bestücken so könnte ich in Summe nur 32 vCPU's verteilen. Ich würde mindestens 40 brauchen.
Gut, das musst du natürlich für dich wissen und entscheiden.
Danke für deine Antwort
Gerne.
Zum RAM: die Riegel werden (wenn kompatibel, siehe Serverhandbuch) heruntertakten.
wiesi200
wiesi200 05.12.2019 um 11:37:57 Uhr
Goto Top
Zitat von @tomolpi:

Hi,

vCPUs sind einfach alle Kerne und Threads. 8 Core CPU mit HT = 16 vCPUs.
Oder einfach das, was du im Taskmanager im CPU Diagramm siehst, sind deine vCPUs, die du an Hyper-V verteilen kannst.
Natürlich dem Host auch noch zwei lassen😉.

Also ich hab da irgenwo noch ne Überbuchung von 4:1 bzw 8:1 im Kopf. Sprich bei 8Core mit HT = 64 bis 128vCPU's wobei auch mehr geht. Je nach Systemauslastung.
samet22
samet22 05.12.2019 um 11:49:32 Uhr
Goto Top
Hallo Wiesi,

was meinst du damit? kann ich mit der GOLD 6244 doch 64 vCPU's vergeben oder wie? Steht diese Überbuchung im Datenblatt?

kann mir jemand bestätigen: 1Thread = vCPU ist?

Danke!
wiesi200
wiesi200 05.12.2019 um 12:03:45 Uhr
Goto Top
Zitat von @samet22:

Hallo Wiesi,

was meinst du damit? kann ich mit der GOLD 6244 doch 64 vCPU's vergeben oder wie? Steht diese Überbuchung im Datenblatt?

kann mir jemand bestätigen: 1Thread = vCPU ist?

Danke!

Das hat nicht mix der CPU ansich zu tun sonder mit dem Handling vom Hyper-V selber.
Beim Windows 2008 war glaub ich eine Begrenzung von 8:1 die gibt's so nicht mehr.
https://social.technet.microsoft.com/Forums/de-DE/6fb9a074-15b5-4f1e-a02 ...

Sprich wenn die Software 4 CPU's verlangt aber sich langweilt dann kannst du sehr gut überbuchen. Wenn die Software permanent richtig Leistung zieht, dann nicht.
jenni
jenni 05.12.2019 aktualisiert um 12:35:13 Uhr
Goto Top
hyper-v-virtual-cpus-explained

Gruß
der jenni

PS.: es ist nicht einfach die Maschinen somit vCPUs auszustatten, dass das System gut rennt.
Fang mit 8:1 an und schau wie es rennt... sonst 4:1
ArnoNymous
ArnoNymous 05.12.2019 um 12:38:07 Uhr
Goto Top
Zitat von @samet22:

Hallo Wiesi,

was meinst du damit? kann ich mit der GOLD 6244 doch 64 vCPU's vergeben oder wie? Steht diese Überbuchung im Datenblatt?

kann mir jemand bestätigen: 1Thread = vCPU ist?

Danke!

Moin,

lies dir am Besten das hier mal durch. Das erklärt das Thema ziemlich gut.

https://www.faq-o-matic.net/2011/01/26/hyper-v-sizing-virtuelle-und-echt ...

Letztendlich kannst du so viel überbuchen, wie es eben passt. Das hängt ja auch immer vom Anspruch der jeweiligen VMs ab. Früher gab es mal ein Support-Limit von 8:1, aber das gibt es nun auch nicht mehr.

Wichtig zu erwähnen ist übrigens: So viel wie nötig, so wenig wie möglich. Es bringt also nichts, wenn du einen Server einfach 4 vCPU zuteilst, weil "man hat es ja".

Gruß
samet22
samet22 05.12.2019 um 12:47:43 Uhr
Goto Top
Danke für den Link, habe ich schon gelesen.

Kann ich zusammenfasst sagen:

Wenn ich die Überbuchung weg lasse und bei der Vergabe einer vCPU im Hyper-V immer auf 100% auslast einstelle (UND auch so rechne). Somit ist dann 1 Thread = 1 vCPU oder?

Es werden in Summe 15 Virtuelle Server auf dem Host laufen und einer davon ist ein SQL mit viele Daten wo auch "Echtzeit"-Statistiken abgerufen werden (Stark CPU und RAM lastig). allein für den SQL Server möchte ich 10 vCPU's mit 100% auslast im Hyper-V zuweißen.

lg
jenni
jenni 05.12.2019 aktualisiert um 12:54:47 Uhr
Goto Top
Es werden in Summe 15 Virtuelle Server auf dem Host laufen und...

und was ist, wenn der Host ausfällt???

einer davon ist ein SQL mit viele Daten wo auch "Echtzeit"-Statistiken abgerufen werden (Stark CPU und RAM lastig). allein für den SQL Server möchte ich 10 vCPU's mit 100% auslast im Hyper-V zuweißen.

ich habe schlechte Erfahrungen mit SQL auf Hyper-V gemacht...
unterdurchschnittliche Performance.
wiesi200
wiesi200 05.12.2019 um 12:57:37 Uhr
Goto Top
Zitat von @samet22:

Es werden in Summe 15 Virtuelle Server auf dem Host laufen und einer davon ist ein SQL mit viele Daten wo auch "Echtzeit"-Statistiken abgerufen werden (Stark CPU und RAM lastig). allein für den SQL Server möchte ich 10 vCPU's mit 100% auslast im Hyper-V zuweißen.

lg

Würd ich so jetzt nicht unbedingt so sagen. Kann denn der Spaß auch die Rechenleistung auf die 10 CPU's wirklich verteilen?
Spirit-of-Eli
Spirit-of-Eli 05.12.2019 aktualisiert um 13:05:27 Uhr
Goto Top
Zitat von @jenni:
Fang mit 8:1 an und schau wie es rennt... sonst 4:1

Heißt das dann 8vCores zu 1Core/HT-Core ?
Ich teste das gerade auf einem quad core mit ein paar Maschinenen und jeweils 4 vCores und es läuft sehr gut!
Th0mKa
Th0mKa 05.12.2019 aktualisiert um 14:21:16 Uhr
Goto Top
Zitat von @samet22:

Kann ich zusammenfasst sagen:

Wenn ich die Überbuchung weg lasse und bei der Vergabe einer vCPU im Hyper-V immer auf 100% auslast einstelle (UND auch so rechne). Somit ist dann 1 Thread = 1 vCPU oder?

Nein, ohne Überbuchung ist die Rechnung 1 Core mit HyperThreading = 1,25 Cores, ein HT Core ist ja kein vollwertiger Core. Du hast also 10 vCPUs pro Prozessor. Microsoft und auch VMware empfehlen eine max. Überbuchung von 1:2. Natürlich kannst du je nach Workload höher gehen, aber insbesondere bei SQL Server sollte man da vorsichtig sein.

/Thomas
keine-ahnung
keine-ahnung 05.12.2019 um 14:08:21 Uhr
Goto Top
Moin,

In unserem neuen Server möchte ich gerne den XEON Gold Prozessor 6244 haben.

warum? Brauchst Du die Taktfrequenz wirklich? Es gibt ja nun Xeon Gold mit mehr physischen Kernen oder man setzt halt auf eine zwei Wege Architektur ... viele Wege führen nach RAM Rom face-smile

LG, Thomas
samet22
samet22 05.12.2019 um 15:25:57 Uhr
Goto Top
Hello keine-ahnung,

MsSQL rechnet "schneller" vor allem wenn es um "Echtzeit"-Berechnungen geht. Mehr GHZ an einem Core ist definitiv spürbar wenn es um Abfragen angeht, getestet habe ich die selbe Select-Abfrage mit 2.0 GHZ und 3,2 GHZ -> hier liege ich im SQL bei doppelt so schnell.

ABER

Nein, ohne Überbuchung ist die Rechnung 1 Core mit HyperThreading = 1,25 Cores, ein HT Core ist ja kein vollwertiger Core. Du hast also 10 vCPUs pro Prozessor. Microsoft und auch VMware empfehlen eine max. Überbuchung von 1:2. Natürlich kannst du je nach Workload höher gehen, aber insbesondere bei SQL Server sollte man da vorsichtig sein.

Thomka Was meinst du damit? Ein Thread erscheint ja im Taskmanager als Logischer-Prozessor auf und die Logischen Prozesse kann ich doch im Hyper-V als CPU's (wenn ich Überbuchung auslasse) vergeben. Ein Thread kann ja Parallel auf einem Core ohne "Beeinträchtigung" parallel ausgeführt werden ... oder liege ich nun komplett falsch... Im Datenblatt steht 2 Threads pro Core.

um die Sache nicht zu überziehen, da die Antworten doch nun alle so unterschiedlich waren:

Wieviele vCPU's kann ich mit dem INTEL GOLD 6244 im Hyper-V vergeben wenn ich die Einstellung treffe, dass keine Überbuchung zustande kommen soll (100% zuweißen) -> 16 vCPU's oder?
tomolpi
tomolpi 05.12.2019 aktualisiert um 15:39:20 Uhr
Goto Top
Zitat von @samet22:
um die Sache nicht zu überziehen, da die Antworten doch nun alle so unterschiedlich waren:

Wieviele vCPU's kann ich mit dem INTEL GOLD 6244 im Hyper-V vergeben wenn ich die Einstellung treffe, dass keine Überbuchung zustande kommen soll (100% zuweißen) -> 16 vCPU's oder?
Ja.

Edit: Virtualisierung Prozessorskalierung - vCPU Calculator
ukulele-7
ukulele-7 05.12.2019 aktualisiert um 17:24:49 Uhr
Goto Top
Nein 15 sonst hat der Hypervisor keine mehr wenn er sie exklusiv einer VM zuweist.

Die ganze Diskussion dreht sich. Das wichtigste ist weniger ist mehr, wurde bereits erwähnt. Für mich klingt 10 vCPU für eine SQL VM auf einem Hyper-V nach einer schlechten Idee vor allem wenn du offensichtlich wenig Vorwissen hast. Entweder ist der SQL wirklich so ein Biest das die Hardware vielleicht etwas knapp wird und dir außerdem Ausfallsicherheit fehlt oder du überschätzt hier maßlos den Bedarf. Am Ende wird nämlich alles gravierend langsammer und nicht schneller bei einer falschen Konfiguration.

Was ist das überhaupt für eine MSSQL Lizenz? Wie viele Kerne kann die überhaupt nutzen?

Allgemein ist Überbuchen eines physischen Kerns (in deinem Fall 8 + 8 HT Kerne) mit vCPUs am Hypervisor kein Problem (viele VMs mit jeweils wenigen Kernen). Wenn aber eine VM alle Kerne beansprucht (oder einen großen Teil) dann können andere VMs nicht gleichzeitig arbeiten. Arbeiten dann die anderen VMs kann der SQL nicht arbeiten und muss warten. Bei deiner Hardware würde ich dem SQL maximal 4 Kerne zu gestehen, grade wenn er viel unter Volllast läuft. Oder ihm eine eigene Hardware dahin stellen.
Th0mKa
Th0mKa 05.12.2019 um 19:49:56 Uhr
Goto Top
Zitat von @ukulele-7:

Allgemein ist Überbuchen eines physischen Kerns (in deinem Fall 8 + 8 HT Kerne) mit vCPUs am Hypervisor kein Problem (viele VMs mit jeweils wenigen Kernen). Wenn aber eine VM alle Kerne beansprucht (oder einen großen Teil) dann können andere VMs nicht gleichzeitig arbeiten. Arbeiten dann die anderen VMs kann der SQL nicht arbeiten und muss warten.

Wichtig ist hier auch zu verstehen das der Host bei 10 zugewiesenen vCPUs warten muss bis 10 Cores frei sind bevor er der VM die CPUs freigibt. Das geht naturgemäß schneller wenn er nur auf z. B. 4 Cores warten muss.

Bzgl. der Thread-Problematik, die tauchen im Taskmanager als CPU auf, sind ja aber keine vollwertigen CPUs und dienen nur zur besseren Auslastung der Pipelines. Deshalb 1,25% als Rechengröße...

/Thomas
Dani
Dani 08.12.2019 um 14:30:05 Uhr
Goto Top
Moin,
1.) vCPU = Kerne * Threads? 8 Kerne * 16 Threads = 128 vCPU's? Kommt mir etwas viel vor ... kann das stimmen?
Hyper-V Virtualization Calculator


Gruß,
Dani