Die Foren-SW läuft ohne erkennbare Probleme. Sollte doch etwas nicht funktionieren, bitte gerne hier jederzeit melden und wir kümmern uns zeitnah darum. Danke!

ESXI 5.0 Geschwindigke zuordnung virtuelle sockets und kerne

Moderatoren: Dayworker, irix

Member
Beiträge: 5
Registriert: 18.01.2013, 16:23

ESXI 5.0 Geschwindigke zuordnung virtuelle sockets und kerne

Beitragvon fanastic » 19.01.2013, 21:06

Hallo zusammen

Leider habe ich im Forum bis jetzt keine Lösung für mein Problem gefunden. Wir haben 40VM und habe das Gefühl das die VM ein bisschen lahmer sind als die physischen Maschinen. Hier ein paar Infos dazu:

Ich habe einen HP Server mit folgender Konfiguration:

48x 2,4 GHZ AMD Opteron 8431 Prozessoren
8 Prozessor Sockets
6 Kerne pro Socket
130 GB Memory
Raid 5 10k SAS
ESXI 5.0

Es sind 40 Virtuelle Maschinen aktiv. Auf allen VM laufen Windows Betriebssysteme.

Die Server wurden von Physischer Hardware auf die ESXI übernommen. An allen Servern haben wir 2 Virtuelle Sockets und 2 Kerne pro Socket zugeordnet.

Was denkt Ihr ist die Konfiguration mit 2 Virtuellen und 2 Kerne pro Socket nicht optimal ? Könnt Ihr mir noch andere Tips geben wie man die VMs optimieren könnte ?

Gruss

Stefan

Bild

King of the Hill
Beiträge: 13066
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 19.01.2013, 21:14

1. Stelle 1 vCPU mit einem vCore ein bei alles VMs wo du nicht sagen kannst das sie 2 vCPUs auch auslasten
2. P2V Systeme laufen immer langsamer da sie Altlasten mitschleppen
3. Fuer eine 8 Way Machine hat das Teil wenig Speicher

Gruss
Joerg

Guru
Beiträge: 2082
Registriert: 21.10.2006, 08:24

Beitragvon bla!zilla » 19.01.2013, 21:37

Alle deine VMs haben also 4 vCPUs, in Summe also 160 vCPUs? Wieviel RAM haben die VMs im Schnitt?

Befolge in jedem Fall die Tipps von Irix

Member
Beiträge: 5
Registriert: 18.01.2013, 16:23

Beitragvon fanastic » 20.01.2013, 20:45

Der Typ mit einem vCPU und einem VCore hat geholfen, Die Geschwindigkeit der VMs ist nicht mehr vergleichbar. Aber warum laufen Sie schneller mit 1 vCPU und VCore ?

Alle VMs haben 4 GB Ram

Was denkt Ihr sollte ich mehr Ram einbauen ?

King of the Hill
Beiträge: 13066
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 20.01.2013, 21:18

Deine Ueberdimensionierung zieht einen Verwaltungs Mehraufwand nach sich und was viel wichtiger ist dass deine Resourcen nicht ausreichen um die ganzen nicht ausgelasteten vCores auch auf der Physik unterzubringen.


Solange kein ballooning oder gar Swapping stattfindet brauchts nicht mehr Speicher. Was ich sagen wollte ist das mir das Verhaeltnis von Sockests zu Speicher falsch vorkommt. Unsere Dual Socket Systeme kommen mit 128 und in wenigen Faellen mit 256.

Gruss
Joerg

Guru
Beiträge: 2082
Registriert: 21.10.2006, 08:24

Beitragvon bla!zilla » 20.01.2013, 21:42

fanastic hat geschrieben:Der Typ mit einem vCPU und einem VCore hat geholfen, Die Geschwindigkeit der VMs ist nicht mehr vergleichbar. Aber warum laufen Sie schneller mit 1 vCPU und VCore ?


Es ist einfacher eine Maschine mit einer vCPU im Scheduler unterzubringen, als eine mit vier VCPUs.

Was denkt Ihr sollte ich mehr Ram einbauen ?


Die meisten Setups stoßen hinsichtlich Platten I/O und RAM vor der CPU an die Grenzen.

King of the Hill
Beiträge: 13658
Registriert: 01.10.2008, 12:54
Wohnort: laut USV-Log am Ende der Welt...

Beitragvon Dayworker » 20.01.2013, 22:47

irix hat geschrieben:Was ich sagen wollte ist das mir das Verhaeltnis von Sockests zu Speicher falsch vorkommt. Unsere Dual Socket Systeme kommen mit 128 und in wenigen Faellen mit 256.
Vielleicht kann ich deine Fragezeichen lösen. Der Opteron 8431 mit Codenamen Istanbul entstammt der vierten Opteron-Generation, wurde im Juni'09 eingeführt und unterstützt noch "Registered DDR2-SDRAM bis PC2-6400R (Sockel F)". Der HP DL785 G6 und darum dürfte es sich hier sicherlich handeln, bietet 64 RAM-Slots und ist bis 512GB freigegeben. Eine Grundconfig sah anscheinend erstmal "nur" mit 4 CPUs und 32GB RAM (8x 4GB) vor. Ich hab leider keine Ahnung, was im Jahre 2010 im Server-Bereich an RAM-Grössen zur Verfügung standen. Möglicherweise erklärt das den für heutige Dimensionen doch recht geringen RAM-Ausbau, besonders wenn man die 8 CPU-Sockets mit in Betracht zieht.

Guru
Beiträge: 2082
Registriert: 21.10.2006, 08:24

Beitragvon bla!zilla » 20.01.2013, 22:51

Zwischem 2010 und 2013 kann ich nicht sagen das sich der Speicherausbau groß geändert hat. Müsste ich mal statistisch auswerten was bei uns durch's Lager ging.

King of the Hill
Beiträge: 13658
Registriert: 01.10.2008, 12:54
Wohnort: laut USV-Log am Ende der Welt...

Beitragvon Dayworker » 20.01.2013, 23:15

Okay, aber die einzelnen Modulgrössen dürften sich seitdem wohl doch etwas vergrössert haben. Zumindest bei DDR3 sind ja inzwischen 32GB-Module in bezahlbaren Dimensionen und mit 64 Slots ist man flugs bei 2TB angekommen.

Wie lange dauert bei solcher Ausstattung eigentlich der Bios/EFI-Durchlauf, bis das OS wirklich anfängt zu laden? So ein Hammerteil mit gut 70kg geballter Power würde ich gern mal Live und in Farbe sehen wollen...

King of the Hill
Beiträge: 13066
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 20.01.2013, 23:24

Unsere 4 Socketsystem kamen in 07/2008 mit 128GB. Aber wie auch beim OP hatten wir das Problem das die VMs zulangsam liefen. Bei 70VMs war noch Speicher uebrig aber die Geschwindigkeit nicht mehr ausreichend und nein wir haben nicht ueberall 4 vCPUs vergeben gehabt.

Des weiteren, wenn man nur wenige von so grossen Systemen hat, es sich sich im Cluster bemerkbar macht wenn einer da ausfaellt.

Gruss
Joerg

Guru
Beiträge: 2082
Registriert: 21.10.2006, 08:24

Beitragvon bla!zilla » 21.01.2013, 09:24

Dayworker hat geschrieben:Wie lange dauert bei solcher Ausstattung eigentlich der Bios/EFI-Durchlauf, bis das OS wirklich anfängt zu laden? So ein Hammerteil mit gut 70kg geballter Power würde ich gern mal Live und in Farbe sehen wollen...


Lange... so lange, dass Kollegen, die sowas nicht gewohnt sind schnell mal nervös werden. :)

Member
Beiträge: 5
Registriert: 18.01.2013, 16:23

Beitragvon fanastic » 29.01.2013, 20:52

ein paar VMs laufen relativ oft im Taskmanager auf 100% Prozessor Auslastung. Soll ich einen vCPU und zwei VCore denen zuteilen ?

King of the Hill
Beiträge: 13658
Registriert: 01.10.2008, 12:54
Wohnort: laut USV-Log am Ende der Welt...

Beitragvon Dayworker » 29.01.2013, 21:42

fanastic hat geschrieben:ein paar VMs laufen relativ oft im Taskmanager auf 100% Prozessor Auslastung. Soll ich einen vCPU und zwei VCore denen zuteilen ?
Welche Anwendungen in der VM verursachen diese Auslastung? Braucht diese Anwendung wirklich mehrere CPU-Kerne oder kommt die Anwendung nicht mit der virtualisierten HW zurecht und verursacht deshalb diese Auslastung?

Guru
Beiträge: 2082
Registriert: 21.10.2006, 08:24

Beitragvon bla!zilla » 29.01.2013, 22:41

Mal CPU Ready Werte prüfen? Bei mehr als 5% hast du ein Problem.

Member
Beiträge: 5
Registriert: 18.01.2013, 16:23

Beitragvon fanastic » 30.01.2013, 10:51

Im anhang die bilder

Server


Bild


VM

Bild

Festplatten Server

Bild


VM 2

Bild

Member
Beiträge: 5
Registriert: 18.01.2013, 16:23

Beitragvon fanastic » 02.02.2013, 20:54

Hat denn keiner einen Tipp für mich??

Experte
Beiträge: 1006
Registriert: 30.10.2004, 12:41

Beitragvon mbreidenbach » 02.02.2013, 21:33

Ob es etwas bringt einer VM die auch nahezu 100% CPU Last läuft mehrere Kerne zu geben hängt von der Software in der VM ab - die muß die Last dann ja auch verteilen.

Ausprobieren.

Wie bereits erwähnt sollte der Wert für CPU Ready überprüft werden. Der gibt an wie lange eine VM warten muß bis die CPU mal Zeit für sie hat. Wenn man mehrere VMs hat dann ist der Wert nie Null aber er sollte nicht 'hoch' sein (wobei 'hoch' hier relativ ist - s.o.).

King of the Hill
Beiträge: 13658
Registriert: 01.10.2008, 12:54
Wohnort: laut USV-Log am Ende der Welt...

Beitragvon Dayworker » 03.02.2013, 14:15

Deine Diagramme zeigen in meinen Augen alles mögliche, beantworten aber in keinster Weise die Frage nach den darauf laufenden Programmen von hoher CPU-Auslastung.
Falls jemand in der VM fatalerweise BOINC oder ein anderes Projekt zum Verteilten Rechnen/Grid Computing installiert hat, helfen dir mehr vCPUs/Kerne in der VM nicht weiter. Wenn ich mich recht entsinne, greift sich beispielsweise BOINC ohne manuellen Config-Eingriff bis zu 4 CPU-Kernen und hält die auch unter Last. Weitere veränderbare Einstellungen besagen, daß die Auslastung nicht über 25% CPU-Last steigen (ist als ständiger Wechsel zwischen Volllast- und Idle-Zustand im Gast sichtbar) oder die CPU nur bei OS-Inaktivität ihre Rechenleistung komplett an BOINC verleihen soll. Letzteres kann auch als Bildschirmschoner realisiert sein, der die laufende Berechnung je nach BOINC-Projekt sehr farbenprächtig illustriert...

Member
Beiträge: 3
Registriert: 03.02.2013, 21:01

Beitragvon codeguru » 08.02.2013, 09:29

also ich hab mit solchen Anfragen relativ häufig zu tun..... warum ist die Software XY denn SOOOO langsam? Warum läuft sie langsamer als auf physischen SErvernß Klare Antwort: Serverchipsätze sind auf Zuverlässigkeit und nicht auf Performance gebaut. Wer übrigens HyperV fähige Prozessoren hat, tut gut dran, einen Socket und 2 Kerne zuzuweisen (oder 4). Und mindestens 2 Kerne sollten es sein laut MS.

Ich hab ein Benchmarkprogramm gemacht, das beispielsweise auf einem 4 Jahre alten Server mit einem Xeon in 1000 ms fertig ist (und in 4 Threads in ca. 300 ms). Ein Phenom X6 1045 schafft das in 900 ms unter ESXI5.1 als auch unter Windows 7, ein aktueller Xeon (W3670 oder so ähnlich) ) war auf einem Workstation Board in 1000 ms fertig, aber derselbe Prozessor in einem Serverboard hatte 1300 ms als single thread. Und das auf HyperV und ESX5. Auf einem Core I7 2830 ist der Test in 800 ms gelaufen.

Es ist halt ein Irrglaube, daß eine einzelne VM durch modernere CPUs schneller wird, sondern man erzielt Einsparungseffekte durch Overcommitment - wenn die Anwendungen nur Peaks bei CPU und Memory verursachen.

was z.B. auf mit virtuellen Terminalservern (auf denen Office, SAP und eine Engineering Software läuft) macht das etwa 3:8 aus, sprich auf den Hardwareresourcen von 3 echten Servern laufen bei ähnlciher Last bis zu 8 VMs ohne Probleme. Das ESX 5.1 kann scheinbar auch noch Speicherdeduplizierung, sprich bootet man IDENTISCHE VMs (z.B. aus dem Xenapp Provisioning services) dann kann man den Speicher noch viel mehr overcommiten. Aber einen Voodoo Switch gibt es dafür nicht - ich hab mal 2 Tage zusammen mit einem ESX Consultant an der Sache geforscht.

Bezüglich der Cores und der Verteilung gibt es einen exponentiellen Zuwachs an Verwaltungsaufwand wenn die Cores > 8 sind, Microsoft hat zu dem Thema mal ne Studie veröffentlicht wo sie mal gegenübergestellt haben wie viele Kerne man zusätzlich bruacht um auf einem Vielkernsystem jeweils die doppelte Leistung zu erzielen. und das fing schon bei 8 Cores an nichtlinear zu werden.

Das ist höchstwahrscheinlich auch auf virtuellen Umgebungen nicht anders - das ESX ist im Wesentlichen ein Redhat Linux und HyperV ein Windows und die kochen alle nur mit Wasser.

Auf NUMA Architekturen verspricht man sich allerdings einen höheren Speicherdurchsatz wenn eine Anwendung auf derselben CPU läuft die auch der Speichercontroller für den Arbeitsspeicher ist in dem sie läuft - und hier wäre das Zuweisen von zuvielen CPU Kernen fatal weil dann nicht mehr alle NUMA lokal laufen. Wieviele das sind erigbt sich aus dem Prozessor der dafür genutzt wird.

Man muß es halt benchmarken und diese Benchmarks müssen zur Applikation passend sein - sonst kommt man zu überhaupt keinen belastbaren Erkenntnissen.
Mein Programm arbeitet mit denselben Frameworks wie die Software die ich als IT Architekt betreue (MFC 4.2, singlethreaded) und anhand der Testergebnisse kann ich sehr gut schätzten wie schnell der CPU Anteil eines Workflows in usnerer Software abgearbeitet ist.

Benutzeravatar
Moderator
Beiträge: 3476
Registriert: 23.02.2005, 09:14
Wohnort: Burgberg im Allgäu
Kontaktdaten:

Beitragvon Tschoergez » 08.02.2013, 17:39

Hi!
Ein paar Anmerkungen:
Der ESX ist NICHT im wesentlichen ein RedHat Linux, sondern eine komplette Eigenentwicklung von VMware.
Beim Speichermanagement gibt es mehrere Mechanismen: Transparent Page Sharing (das wohl codeguru mit Speicherdeduplizierung gemeint hat), Memory Compression, den Balloon Treiber und letztendlich Swapping.
Ziel ist immer, jeder VM genau soviele Resourcen zur Verfügung zu stellen, wie sie benötigt, nicht weniger, aber auch nicht mehr.

Beim Benchmarken in VMs sollte man genau wissen, was der Benchmark macht. Je nach Art der Auslastung spielt der Overhead durch die Virtualisierung eine mehr oder weniger markante Rolle. In der Praxis ist es am besten, wirklich mit der Applikation zu messen, die man auch betreiben will.
Wirklich ausschlaggebend ist der Overhead aber in der PRaxis eh nicht, man will ja konsolidieren, weil die Server sonst nicht gut ausgelastet sind.

Zum Troubleshooting von CPU Problemen als erstes die schon angesprochenen CPU Ready Werte anschauen.
Für eine einzelne VM mehrere vCPUs oder Core, macht Sinn, wenn die Applikation das auch nutzt. Beim Umstellen den Hadware Abstraction Layer (HAL) im Gast beachten! Und immer drauf achten, dass man mehr physikalisch mehr logische CPUs hat als die größte VM auf dem ESX.

Beim Speicher mit overcommittment vorsichtig sein, und am besten die ballooning und swapping werte vom ESX

Bei höheren Konsolidierungsraten (sowie sich das hier im Thread anhört): CPU und RAM sind nicht die einzigen Resourcen: Meist ist die IO Performance zuerst der Engpass.
Wie sind denn die Disk-Latenzzeiten der VMs?

Etwas Referenzliteratur:
http://www.cs.cmu.edu/~15712/papers//waldspurger02.pdf
http://www.vmware.com/files/pdf/techpap ... d-Perf.pdf
http://www.vmware.com/pdf/Perf_Best_Pra ... ere5.1.pdf
http://pubs.vmware.com/vsphere-51/topic ... -guide.pdf

Viele Grüße,
Jörg

Member
Beiträge: 480
Registriert: 03.08.2010, 11:13
Wohnort: Sauerland

Beitragvon stahly » 08.02.2013, 18:46

Tschoergez hat geschrieben:...
Für eine einzelne VM mehrere vCPUs oder Core, macht Sinn, wenn die Applikation das auch nutzt...


Zustimmung! Wir haben z.B. ein MS-SQL Server, der fast linear skaliert, bei Erhöhung der vCores. Sogar bei der Erhöhung von 10 auf 12 vCores war noch ein deutlich spürbarer (und nicht nur messbarer) Leistungsschub zu beobachten. Und das, obwohl die VM dann mehr Cores hat, als die physikalische CPU (10). O.K. - davon waren dann 4 Stück verbaut und ein Teil rechnete dann auf der 2. phys. CPU... ;)

Benutzeravatar
Moderator
Beiträge: 3476
Registriert: 23.02.2005, 09:14
Wohnort: Burgberg im Allgäu
Kontaktdaten:

Beitragvon Tschoergez » 08.02.2013, 19:39

passt schon: Der ESX verteilt die einzelnen Kerne der VM möglichst optimal über alle physikalisch vorhandenen Kerne (und Threads bei Hyperthreading), inkl. Berücksichtigung von NUMA.

Man sollte eben nur aufpassen, dass man nicht zu viele so große VMs auf dem gleichen ESX laufen lässt, sonst kommts zu Scheduling-Problemen (die sieht man dann an einer hohen %CSTP-Rate im esxtop).

Insgesamt ist die Problematik schon lange nicht mehr so groß wie beim ESX 3 (Sichwort relaxed co-scheduling).

Und eben immer beachten, CPU oder RAM ist nur sehr selten als erstes die begrenzende Resource.

Viele Grüße,
Jörg


Zurück zu „vSphere 5 / ESXi 5 und 5.1“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast