Jump to content

vCPU Kalkulation in HyperV


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen

 

Ich beschäftige mich gerade etwas mit der Kalkulation von vCPUs unter HyperV und finde irgendwie keine schlüssigen Antworten.

 

In gewissen Guides im Internet finden sich Leute die der Meinung sind, dass pro Core ein vCPU gerechnet werden kann - bei einem Intel Silver 4110 CPU mit 8 Kernen wären das also gerade mal 8 vCPUs.

Ich war aber bisher immer der Meinung dass es (eigentlich bei keinem Hypervisor) keine direkte 1:1 Zuteilung oder Abhängigkeit von Cores zu vCPUs gibt da es sich bei virtuellen CPUs um Threads, bzw. Prozessorzeit handelt in welcher die VMs dann denn Prozessor zur Berechnung ihrer Threads nutzen können. Hat eine VM also z.B. 4 vCPUs kann diese VM 4 Threads gleichzeitig auf dem Host CPU rechnen.

 

In anderen Guides findet sich die altbekannte Best Practice dass pro Core 8 vCPUs gerechnet werden können - an anderer Stelle wird diese rule of thumb bereits als "konservativ" bezeichnet. In obigem CPU Beispiel würde das ja (Hyperthreading mal ausgeklammert) zu 64 möglichen vCPUs führen, die das System problemlos stemmen kann.

 

Ich habe bis anhin den VMs im KMU Umfeld jeweils 4 vCPUs zugeteilt und bin damit eigentlich gut gefahren, durch all die verschiedenen Guides und Berechnungsgrundlagen bin ich aber irgendwie total durch den Wind ob dieser Ansatz nicht unterprovisoniert ist. Dass es dabei natürlich auch auf die Workload ankommt, welche die VM stemmen muss ist mir klar - in spezifischen Szenarien in welchen die VM CPU intensive Tasks betreiben muss passe ich die vCPU Konfiguration natürlich an. Ich betrachte hier primär den "mixed use", also etwas AD, Fileserver, ERP mit SQL, etc. im KMU Umfeld mit durchschnittlich 10-15 Usern.

 

Wenn ich bei einem entsprechenden System den Task Manager beobachte wirkt es auf mich auch nicht so als ob hier grossartig Auslastung herrscht - sowohl auf den VMs wie auch auf dem Host. Die  Auslastung beträgt im Schnitt an einem normalen Arbeitstag zwischen 30 und 40% - natürlich je nach VM UseCase. Der TaskManager ist dafür nur bedingt geeignet, ist mir klar. Es gibt mir aber doch so einen grundsätzlich ersten Hinweis in Sachen Auslastung der verschiedenen Komponenten.

 

Lange Rede kurzer Sinn; kann mir allenfalls jemand sagen ob mein bisheriger Ansatz grundsätzlich korrekt ist oder ob ich meinen VMs zukünftig mehr vCPUs zuteilen soll? Ich kann mir irgendwie nicht vorstellen dass hier ein grossartiger Performance Boost zu erwarten ist aber wie gesagt - dank all den verschiedenen Angaben bin ich nun wirklich etwas verwirrt und unsicher :lool:

 

Herzlichen Dank im Voraus

 

LG
Domo

bearbeitet von Domo
Link zu diesem Kommentar

Moin,

 

für einen DC in solch einer Kleinstumgebung sind 4 vCPU mehr als er braucht. Ein SQL Server kann parallelisieren und könnte durchaus auch 8 vCPU auslasten, beispielsweise wenn das CRM-Programm den SQL Server durch gespeicherte Prozeduren zum Rechnen benutzt.

 

Mein Ansatz ist es, mich dem "sweet spot" von unten anzunähern, denn die Gesamtzahl vergebener vCPUs ist genauso wichtig für die Performance wie die einzelne Zuteilung.

 

PerfMon ist Dein Freund bei Fragen dieser Art.

Link zu diesem Kommentar
vor 3 Stunden schrieb NilsK:

Moin,

 

Ich habe deine Frage überhaupt nicht verstanden. Kannst du bitte noch mal knapp beschreiben, was du wissen möchtest?

 

Gruß, Nils

 

 

 

Hallo Nils

 

Schade, habe eigentlich versucht alles möglichst umfassend und verständlich zusammenzufassen...

 

Kurzum:

1. Wie berechne ich korrekt und verlässlich bei einem HyperV Host die maximal Anzahl möglicher vCPUs für meine VMs?

2. Wie teile ich diese CPUs unter meinen VMs auf, resp. ist mit einem Performanceboost zu rechnen wenn einer VMs mehr vCPUs zugeteilt werden obwohl im Task Manager keine grossartige Auslastung festzustellen ist?

 

Die beiden anderen Antworten haben mich aber in meiner Annahme und meinem bisherigen Konzept soweit bestätigt, danke euch!

 

Schönes WE wünsch ich allen :-)

Link zu diesem Kommentar

Moin,

 

Gut: 1. Gar nicht, weil es eine maximale Zahl nicht gibt. Du kannst dir am Ende nur anschauen, wie eine konkrete Umgebung läuft und das ggf. per Monitoring untermauern. Der Task Manager hilft dabei nicht, er führt normalerweise eher in die Irre.

 

Als Faustregel: zwischen 2:1 und 20:1 trifft man alles an, das kann auch alles in der jeweiligen Situation passen. 20:1 passt aber längst nicht überall, und 2:1 ist meist übertrieben konservativ. Allerdings gibt es Software, die nur mit 2:1 von deren Hersteller Support kriegt. In gemischten Umgebungen würde ich mir bei 4:1 oder 8:1 keine größeren Sorgen machen. 

 

2: das geben die Applikationen in den VMs vor, nicht die Host-Umgebung. Auch hier ist also keine pauschale Aussage möglich. In der Praxis sehe ich eher zu "dicke" als zu "dünne" Konfigurationen. Einem DC würde ich kaum jemals mehr als 2 vCPUs geben, ein SQL Server kann damit auch gut laufen, wird aber oft auch in kleineren Umgebungen mit 4 besser laufen, manchmal auch 8. Auch dies muss man sich konkret ansehen.

 

Ja, auch ich stimme also den anderen zu. Und nein, eine VM, die nichts zu tun hat, läuft mit mehr CPU nicht besser. Sie langweilt sich nur schneller.

 

Gruß, Nils

bearbeitet von NilsK
Link zu diesem Kommentar

Überbuchung ist übrigens im KMU Umfeld in der Regel deutlich problematischer als im grossen Umfeld.

Grund: Die Anwendungen sind öfter nicht so optimiert wie im grössen Umfeld, sei es Datenbanken und deren Indexe, Clients die Videos abspielen, vielleicht Filer + Clients auf dem gleichen Host (ohne einbremsung der IO's, wird die volle CPU-Leistung für die LAN-Ports verbraten) usw. Alles Dinge die man im grösseren Umfeld in der Regel steuert, im kleinen aber entweder nicht kann (z.Bsp ESXi Essentials) oder schlicht zu aufwendig in der Pflege ist. ;)

 

Auch sollte man eher viel MHZ statt viel Kerne haben. Grund: Viele KMU-Anwendungen sind Single Core basiert, Clients die man als VDI oder RDS laufen lässt profitieren enorm von hoher Single Core Leistung --> User Feeling --> KMU's sind meist Inhaber geführt = Computer soll gefälligst schnell sein, schnell heisst nicht insgesamt sondern genau dann wenn etwas gewünscht wird (Latenz) ;)

Daher schaue ich immer das ich normal nicht mehr als 16 Kerne pro Host (Lizenzierung bzw. deren Kosten) und Taktrate von möglichst >3GHZ habe. Sprich das + an Leistung/Stromkosten ist oft deutlich günstiger als viele Stunden Optimierung auf welche man oft nichtmal einen Einfluss hat. Wie immer zu diesem Thema: Nur meine ganz persönliche Meinung.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...