2 Prozessoren Server und RAM

1116
Roey Nissim

Ich kaufe gerade einen Dell T620 Server mit zwei E5-2660v2-Prozessoren und 128 GB RAM. Dell sagte mir, dass ich bei Bestellung von 128 GB RAM 64 GB pro Prozessor haben müsste. Warum ist das?

Angenommen, ich führe einen einzigen Prozess auf allen 20 Kernen aus, der 40 GB Daten in den Speicher lädt und verarbeitet. Muss ich die Daten zweimal laden (1 pro Prozessor)? Wenn ja, wie würde ich das tun? Wenn nein, in welcher Weise wirkt sich die Speicheraufteilung auf den Computer aus?

0
Fragen Sie den Vertreter von Dell, was er mit 64 GB pro Prozessor gemeint hat. Wenn Sie ein einzelnes Betriebssystem laden, sollten im Allgemeinen alle 128 GB für das Betriebssystem verfügbar sein. Prozessoren werden keinem einzelnen RAM zugewiesen Ganesh R. vor 10 Jahren 1
This has to do with how Xeon platform is designed. Each CPU has its own memory controller. Ramhound vor 10 Jahren 0
@Ramhound also wie wirkt es auf die Maschine? sollte die Daten zweimal laden und wenn ja wie? Roey Nissim vor 10 Jahren 0
System is unware there are two memory controllers. Its also unware the specific fact there are two processes. Its only aware how many cores threads it has access to. Ramhound vor 10 Jahren 0
@Ramhound also im Grunde sollte es meine Programmierung nicht beeinflussen und ich hätte 20 Kerne mit 128 GB RAM, oder? Roey Nissim vor 10 Jahren 0
@ RoeyNissim - Ich habe das Gefühl, dass ich mit meinen Aussagen ziemlich klar war. Wenn Sie daran interessiert sind, wie mehrere Prozessoren auf der Xeon-Plattform funktionieren, schlage ich vor, einige Nachforschungen zu diesem Thema durchzuführen. Ramhound vor 10 Jahren 0

2 Antworten auf die Frage

2
Paul A. Clayton

Es gibt vielleicht drei Gründe, warum der Speicher zwischen den beiden Prozessoren aufgeteilt werden soll.

Erstens hat die Speicherschnittstelle jedes Prozessors eine gegebene maximale Bandbreite. Durch die Verdoppelung der Anzahl der Prozessoren wird diese Spitzenspeicherbandbreite verdoppelt.

Zweitens kann bei einigen Systemen die Geschwindigkeit der Speicherschnittstelle durch die Anzahl der an einen Speicherkanal angeschlossenen Anzahl von Modulen begrenzt sein, so dass die Verwendung eines Moduls pro Kanal (mit doppelt so vielen Prozessoren und damit doppelt so vielen Kanälen) eine höhere Bandbreite zulässt. Außerdem kann die Anzahl der Speichermodule, die von einem Prozessor unterstützt werden, die Verwendung eines teureren Moduls erzwingen, um dieselbe Gesamtsystemkapazität bereitzustellen.

Drittens, wenn die Workload davon profitiert, die Verarbeitung auf den anderen Prozessor zu verteilen (z. B. eine große Thread-Anzahl oder weniger Threads, die von mehr L3-Kapazität pro Thread profitieren), als es durch die höhere Latenz (und möglicherweise eine geringere Bandbreite) eines Speicherzugriffs geht der andere Prozessor kann dann auch ohne signifikante Optimierung der Speicherzuordnung durch das Betriebssystem (NUMA-Optimierung (Nicht-einheitlicher Speicherzugriff), Zuordnen von Speicher und Planen von Threads, so dass der mit dem Prozessor des Threads verbundene Speicher öfter verwendet wird) die Leistung verbessern. Bei einer erheblichen NUMA-Optimierung (die für die Arbeitslast möglicherweise nicht praktikabel ist), würden die meisten Speicherzugriffe auf schnelleren lokalen Speicher erfolgen.

Bei nur zwei Knoten ist es unwahrscheinlich, dass eine Replikation des Speichers durchgeführt wird, da der NUMA-Faktor (wie viel langsamer der Remotespeicher relativ zum lokalen Speicher ist) klein ist. Wenn Speicher für einen bestimmten Zugriff an einen Remote-Prozessor angeschlossen ist, wird die Anforderung über eine Interprozessor-Verbindung (QPI für Intel) an den Speichercontroller des Remote-Prozessors (obwohl ein Cachetreffer in L3 dieses Prozessors möglich ist) und den Speichercontroller (oder L3-Cache) erfüllt die Anforderung, indem die Daten über die Interprozessor-Verbindung an den Anforderer gesendet werden.

(Ein System mit einer großen Anzahl von Knoten / Prozessoren kann von dem Duplizieren von Speicherinhalten des Betriebssystems profitieren, die nicht beschreibbar sind. Einige Betriebssysteme haben sogar eine Migration (Verschieben von Speicherinhalten auf einen anderen Knoten) als NUMA-Optimierung verwendet.)

Vielen Dank für die großartige Erklärung, aber ich kann nicht nachvollziehen, welche Auswirkungen dies auf mein Programm hat? Kann ich einfach davon ausgehen, dass ich 20 Kerne mit 128 GB habe und die Hardware und das Betriebssystem damit umgehen lassen? Roey Nissim vor 10 Jahren 0
@RoeyNissim Als der vorletzte Absatz versucht zu erklären, handhabt Hardware den Zugriff auf den Remote-Speicher. Das Betriebssystem kann versuchen, die Anzahl der Remote-Speicherzugriffe zu reduzieren (und kann eine Schnittstelle für Anwendungen bereitstellen, um Informationen zur Prozessoraffinität bereitzustellen). Anwendungen können für NUMA konzipiert sein (was auch Vorteile für den Cache haben kann), aber nicht NUMA-optimierte Anwendungen werden ordnungsgemäß ausgeführt (und das Betriebssystem kann etwas optimiert werden) und leiden in der Regel nur unter einem geringen Leistungsverlust (z. B. <2%) ein kleines System. Lassen Sie sich das Betriebssystem im Allgemeinen um solche Komplexitäten kümmern. Paul A. Clayton vor 10 Jahren 0
0
Alan

Es hat mit der Intel-Architektur zu tun. Der Speicher muss zu gleichen Teilen auf alle Prozessoren aufgeteilt werden. In diesem Fall müssen Sie auf jedem Prozessorbus 64 GB Speicher installieren. Das Betriebssystem sieht immer noch alle 128 GB Speicher, aber der Speicher ist auf die beiden CPUs verteilt.

Es ist auch wichtig, dass der Speicher in CPU1 physisch mit dem Speicher in CPU2 übereinstimmt. Wenn Sie beispielsweise über Speicher in den Steckplätzen A1, A2 und A3 verfügen (A ist mit CPU1 verbunden), benötigen Sie genau denselben Speichertyp / die gleiche Spezifikation in den Steckplätzen B1, B2 und B3 (B ist mit CPU 2 verbunden). Wenn Sie dies nicht tun, wird CPU2 nicht online geschaltet.

Aus diesem Grund werden heutzutage 2 CPUs anstelle von nur 1 CPU auf einem Dual-CPU-fähigen System gepusht. Wenn Sie nur über eine CPU verfügen, können Sie keinen Speicher verwenden, der in den 'B'-Steckplätzen angeschlossen ist