Server-RAM-Ausstattung
Hallochen Gemeinde,
hinsichtlich des RAM's eines Virtualisierungshosts stellen sich Fragen.
Kurze Situationsbeschreibung:
1. Der Host hat ein Dual-Socket-Board und beide CPU-Sockel sind mit demselben CPU-Mehrkern-Modell bestückt. Beide Sockel haben wie üblich dieselbe Anzahl an RAM-Bänken. Derzeit sind diese RAM-Bänke identisch mit denselben RAM-Modulen zur Hälfte befüllt. Insgesamt sind das X GB und je CPU-Sockel sind also X/2 bestückt.
2. Die aktuell aktiven VM's haben zusammen einen fest zugewiesenen RAM-Bedarf von knapp 0,8*X, so dass aktuell alles im grünen Bereich ist. Jedoch gibt es bestimmte Überlegungen für zusätzliche VM's, so das X (abzgl. des Speichers für den Host) nahezu ausgereizt oder gar überschritten werden würde. Somit ist an eine angemessene Erhöhung des RAM zu denken.
Fragestellungen:
1. Wie würde es sich auf die Gesamtperformance auswirken, wenn nur bei einer CPU die freien RAM-Bänke aufgefüllt werden würden? Wie ist das im Vergleich zu einer synchronen Aufrüstung für beide CPU's zu betrachten? Was wäre in diesem Zusammenhang außerdem unter Nachhaltigkeitsgesichtspunkten überlegenswert?
2. Wie ist eine synchrone / asynchrone Speicherausstattung bei zwei CPU's in Bezug auf die NUMA-Funktionalität zu betrachten? (Insbesondere mit Blick auf einen (derzeit noch) Hyper-V-Server?)
3. Was wäre im Übrigen Best Practice bei der Planung der RAM-Ausstattung des Hosts und der Dimensionierung der RAM-Zuweisung an die VM's? Welche Ableitungen sind hier gerade unter dem NUMA-Gesichtspunkt zu treffen?
Vielen Dank für Euren Input und noch einen schönen Ostermontag
HansDampf06
hinsichtlich des RAM's eines Virtualisierungshosts stellen sich Fragen.
Kurze Situationsbeschreibung:
1. Der Host hat ein Dual-Socket-Board und beide CPU-Sockel sind mit demselben CPU-Mehrkern-Modell bestückt. Beide Sockel haben wie üblich dieselbe Anzahl an RAM-Bänken. Derzeit sind diese RAM-Bänke identisch mit denselben RAM-Modulen zur Hälfte befüllt. Insgesamt sind das X GB und je CPU-Sockel sind also X/2 bestückt.
2. Die aktuell aktiven VM's haben zusammen einen fest zugewiesenen RAM-Bedarf von knapp 0,8*X, so dass aktuell alles im grünen Bereich ist. Jedoch gibt es bestimmte Überlegungen für zusätzliche VM's, so das X (abzgl. des Speichers für den Host) nahezu ausgereizt oder gar überschritten werden würde. Somit ist an eine angemessene Erhöhung des RAM zu denken.
Fragestellungen:
1. Wie würde es sich auf die Gesamtperformance auswirken, wenn nur bei einer CPU die freien RAM-Bänke aufgefüllt werden würden? Wie ist das im Vergleich zu einer synchronen Aufrüstung für beide CPU's zu betrachten? Was wäre in diesem Zusammenhang außerdem unter Nachhaltigkeitsgesichtspunkten überlegenswert?
2. Wie ist eine synchrone / asynchrone Speicherausstattung bei zwei CPU's in Bezug auf die NUMA-Funktionalität zu betrachten? (Insbesondere mit Blick auf einen (derzeit noch) Hyper-V-Server?)
3. Was wäre im Übrigen Best Practice bei der Planung der RAM-Ausstattung des Hosts und der Dimensionierung der RAM-Zuweisung an die VM's? Welche Ableitungen sind hier gerade unter dem NUMA-Gesichtspunkt zu treffen?
Vielen Dank für Euren Input und noch einen schönen Ostermontag
HansDampf06
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 6718838666
Url: https://administrator.de/contentid/6718838666
Ausgedruckt am: 23.11.2024 um 15:11 Uhr
11 Kommentare
Neuester Kommentar
Moin,
Dass hier alle Welt immer so ein Geheimnis um die Hardware macht.
Als könnte man unter Angabe des Herstellers und Modells direkt auf das Unternehmen schließen, welches die Hardware einsetzt.
Zu deinen Fragen:
RTFM
Da du nichts zur CPU/ Mainboard sagst, wird es hier für uns schwer..
Ne Power10 Maschine reagiert mitunter anders, als ne Kiste auf Basis von Intel/ AMD. Und über das Alter deiner Hardware sagst du auch nichts, da es mitunter auch hier Unterschiede geben kann (nicht muss)…
Mein Tipp:
Halte alles gleich verteilt. In jedem Fall führt das zu weniger Problemen.
Und spare nicht am RAM. Lieber etwas mehr einkaufen, als in 1 Jahr noch mal nachlegen zu müssen…
Dass hier alle Welt immer so ein Geheimnis um die Hardware macht.
Als könnte man unter Angabe des Herstellers und Modells direkt auf das Unternehmen schließen, welches die Hardware einsetzt.
Zu deinen Fragen:
RTFM
Da du nichts zur CPU/ Mainboard sagst, wird es hier für uns schwer..
Ne Power10 Maschine reagiert mitunter anders, als ne Kiste auf Basis von Intel/ AMD. Und über das Alter deiner Hardware sagst du auch nichts, da es mitunter auch hier Unterschiede geben kann (nicht muss)…
Mein Tipp:
Halte alles gleich verteilt. In jedem Fall führt das zu weniger Problemen.
Und spare nicht am RAM. Lieber etwas mehr einkaufen, als in 1 Jahr noch mal nachlegen zu müssen…
RAM sinkt und sinkt im Preis.
Das heißt ordentlich zu langen.
Das heißt ordentlich zu langen.
Zu 1) Manche Boards können das gar nicht. Und warum sollte man das auch tun?
Zu 2) Ich würde mich nicht auf Funktionalitäten stützen, wenn ich mit ausreichend RAM dem Problem aus dem Weg gehen kann.
Zu 3) Best Practise ist ausreichend Speicher zu verbauen und dafür zu sorgen, dass Balance im System herrscht.
Zu 2) Ich würde mich nicht auf Funktionalitäten stützen, wenn ich mit ausreichend RAM dem Problem aus dem Weg gehen kann.
Zu 3) Best Practise ist ausreichend Speicher zu verbauen und dafür zu sorgen, dass Balance im System herrscht.
So ganz ohne die technischen Angaben zu Mainboard und CPU wird man hier keine passende Aussage treffen können. Unsere Server (AMD Epyc / Lenovo Mainboard) vertragen auch recht "wilde" Kombinationen von RDIMM-Kombinationen. Pro Sockel (zwei pro Mainboard) sind 16 DIMM-Slots verfügbar. Wir haben aber nur eine CPU drin und keine 16 RAM-Module sondern 12 Stück (32GB*12 = 384). Aber selbst wenn ich in zwei der vier leeren Bänke 64GB Module rein stecken würde, wäre das kein Problem da zwei Bänke ein Chanel bilden und so am Ende auf jedem Chanel 64GB enthalten sind.
Es ist eben so, dass das schlechteste Duo das Thema regelt.
Die CPU kann nicht jeden Kanal separat timen, refreshen usw ...
Die CPU kann nicht jeden Kanal separat timen, refreshen usw ...
Abgesehen von dem was schon gesagt wurde:
Ansonsten siehe meine Vorposter. NUMA wird interessant wenn eine VM Kerne aus CPU A aber RAM aus CPU B benutzen muss. Das passiert nur wenn es sich nicht vermeiden lässt und sobald das passiert hast du eigentlich zu wenig RAM weil das grundsätzlich nicht optimal ist. Das ist natürlich automatisch der Fall wenn eine VM mehr als 50% des vorhandenen RAMs belegt oder mehr als 50% der CPU Kerne, das sollte man vermeiden. Aber auch hier kann man dir ohne konkrete Informationen über die Aufteilung nur diesen allgemeinen Rat geben: Halte die VMs selbst klein.
Zitat von @HansDampf06:
1. Der Host hat ein Dual-Socket-Board und beide CPU-Sockel sind mit demselben CPU-Mehrkern-Modell bestückt.
Ich hoffe es sind auch die selben CPUs und nicht nur CPUs der selben Generation?1. Der Host hat ein Dual-Socket-Board und beide CPU-Sockel sind mit demselben CPU-Mehrkern-Modell bestückt.
2. Die aktuell aktiven VM's haben zusammen einen fest zugewiesenen RAM-Bedarf [...]
Der RAM ist aber nicht einer VM exklusiv / fest zugeordnet sondern schon dynamisch oder? Der RAM kann überbelegt werden, es sollte aber idealer Weise zu jedem Zeitpunkt auch noch tatsächlich freier RAM zur Verfügung stehen.Ansonsten siehe meine Vorposter. NUMA wird interessant wenn eine VM Kerne aus CPU A aber RAM aus CPU B benutzen muss. Das passiert nur wenn es sich nicht vermeiden lässt und sobald das passiert hast du eigentlich zu wenig RAM weil das grundsätzlich nicht optimal ist. Das ist natürlich automatisch der Fall wenn eine VM mehr als 50% des vorhandenen RAMs belegt oder mehr als 50% der CPU Kerne, das sollte man vermeiden. Aber auch hier kann man dir ohne konkrete Informationen über die Aufteilung nur diesen allgemeinen Rat geben: Halte die VMs selbst klein.
Hi
aktuellere Xeon CPU sind immer in 6er Gruppen gleicher RAM Bausteine (je 3 auf Bank A und 3 auf Bank B ) zu bestücken um die optimale Performance der CPU zu gewährleisten, das gilt jetzt explizit für Intel Xeon CPUs - ob das jetzt für die aktuellste Generation noch so gilt bin ich mir nicht sicher, da könnten es auch bereits 8 oder 12 sein.
Das Thema NUMA was @ukulele-7 anspricht ist nicht zu vernachlässigen, vor allem bei RAM Lastigen Anwendungen wie SQL, Exchange usw. muss das beachtet und in VMWare und ebenso im BIOS korrekt eingerichtet sein.
Falsche RAM Konfiguration kann zu einem deutlichen Performance-Verlust führen, mit einer Vollbestückung gleicher RAM-Bausteine macht man nie etwas verkehrt, erst wenn man eine Teilbestückung durchführt muss man darauf achten, welche Slot mit welchen Modulen bestückt werden.
Siehe auch:
https://dl.dell.com/manuals/common/balancing_memory_xeon_2nd_gen.pdf
https://www.wwt.com/article/memory-population-guidelines-for-intel-3rd-g ...
https://www.advancedhpc.com/blogs/adams-blog/memory-configuration-and-pe ...
https://www.intel.com/content/www/us/en/support/articles/000038750/serve ...
Gruß
@clSchak
aktuellere Xeon CPU sind immer in 6er Gruppen gleicher RAM Bausteine (je 3 auf Bank A und 3 auf Bank B ) zu bestücken um die optimale Performance der CPU zu gewährleisten, das gilt jetzt explizit für Intel Xeon CPUs - ob das jetzt für die aktuellste Generation noch so gilt bin ich mir nicht sicher, da könnten es auch bereits 8 oder 12 sein.
Das Thema NUMA was @ukulele-7 anspricht ist nicht zu vernachlässigen, vor allem bei RAM Lastigen Anwendungen wie SQL, Exchange usw. muss das beachtet und in VMWare und ebenso im BIOS korrekt eingerichtet sein.
Falsche RAM Konfiguration kann zu einem deutlichen Performance-Verlust führen, mit einer Vollbestückung gleicher RAM-Bausteine macht man nie etwas verkehrt, erst wenn man eine Teilbestückung durchführt muss man darauf achten, welche Slot mit welchen Modulen bestückt werden.
Siehe auch:
https://dl.dell.com/manuals/common/balancing_memory_xeon_2nd_gen.pdf
https://www.wwt.com/article/memory-population-guidelines-for-intel-3rd-g ...
https://www.advancedhpc.com/blogs/adams-blog/memory-configuration-and-pe ...
https://www.intel.com/content/www/us/en/support/articles/000038750/serve ...
Gruß
@clSchak
NUMA hat er selbst schon angesprochen. Ich hatte noch nie Probleme mit NUMA und habe da auch nie etwas "konfigurieren" müssen/können aber bei ausreichend RAM / Kernen bzw. "nicht zu großen" VMs sollte der Hypervisor automatisch die Ressourcen optimal zuweisen.
Es ist auch generell keine gute Idee eine große VM, die das System oder auch nur eine CPU zu einen großen Teil oder vollständig allein auslastet, zu betreiben. Da kommt dann auch CPU Overprovisioning zur Geltung. vCPU am besten möglichst nur nach Bedarf auf die VMs zuweisen. vRAM kann überbucht werden sofern der tatsächlich genutzte RAM nicht den pRAM schon auslastet. Wenn eine VM mehr als 50% der Kerne einer deiner pCPU nutzen soll oder mehr als 25% des pRAMs an einer pCPU dann empfehle ich dir einen anderen Weg zu suchen, z.B. in dem du den Workload aufteilst. Ich sage nicht das das grundsätzlich nicht geht aber man sollte sich dann genau mit den Effekten befassen die auftreten können um das zu verstehen. Bei CPU wäre dafür esxtop gut (ESXi vorausgesetzt):
https://www.yellow-bricks.com/esxtop/
Mit RAM und NUMA habe ich mich selbst noch nicht sehr intensiv in der Theorie befasst, eventuell kann man da auch mit esxtop was machen.
Es ist auch generell keine gute Idee eine große VM, die das System oder auch nur eine CPU zu einen großen Teil oder vollständig allein auslastet, zu betreiben. Da kommt dann auch CPU Overprovisioning zur Geltung. vCPU am besten möglichst nur nach Bedarf auf die VMs zuweisen. vRAM kann überbucht werden sofern der tatsächlich genutzte RAM nicht den pRAM schon auslastet. Wenn eine VM mehr als 50% der Kerne einer deiner pCPU nutzen soll oder mehr als 25% des pRAMs an einer pCPU dann empfehle ich dir einen anderen Weg zu suchen, z.B. in dem du den Workload aufteilst. Ich sage nicht das das grundsätzlich nicht geht aber man sollte sich dann genau mit den Effekten befassen die auftreten können um das zu verstehen. Bei CPU wäre dafür esxtop gut (ESXi vorausgesetzt):
https://www.yellow-bricks.com/esxtop/
Mit RAM und NUMA habe ich mich selbst noch nicht sehr intensiv in der Theorie befasst, eventuell kann man da auch mit esxtop was machen.