6. Meine ursprüngliche Frage war: Kann ich auch bei einem Dual-Socket-System auf verschiedenen Sockeln verschieden große RAM-Riegel einbauen?
Wie schon gesagt sollte das grundsätzlich funktionieren. Aber ich würde es dennoch nicht machen. Aber auch das sagte ich bereits... Der Sinn ist einfach nicht gegeben, warum man das tun sollte, wenn man beide CPUs mit der gleichen Menge an RAM bestücken kann. Du sprichst ja immer von 6x Riegeln. Es wäre also schön aufteilbar.
Das Problem, was durch ungleiche Mengenbestückung entsteht ist schlicht, dass du durch zwei CPUs zwei NUMA Knoten erhälst. Das heist, eine Software (je nachdem, was genau) wird möglicherweise versuchen, ihre Berechnungen, Daten usw. nicht über die Grenzen EINES NUMA Nodes hinweg zu belegen, es sei denn, man zwingt diese dazu.
Nur mal ein simples Beispiel, du hast exakt einen einzigen Task, dieser kann sagen wir 16 Threads belegen. Eine CPU stellt dabei acht Threads und ist (inkl. dem RAM) ein NUMA Node... Zwingt man nun die Software, über beide NUMA Nodes hinweg zu agieren, so entsteht Traffic über die Interconnects. Das ist generell bedeutend langsamer als man es annimmt. Ein modernes OS schubst dazu noch die Threads zwischen den verschiedenen Cores immer schön hin und her. Je nachdem, wo die Threads nun genau laufen, müssen natürlich auch die Daten in den Caches vorhanden sein genau so wie Speicherinformationen eben entsprechend in den Speicherriegeln liegen müssen. Querzugriffe zwischen den CPUs sind möglich, das sieht das Konzept vor, aber eben lahm im Vergleich. Ein Prozessor, welcher Cachegestützt auf seinen eigenen RAM zugreifen kann, wird das sehr schnell hinbekommen. Ein Prozessor, welcher ohne Cache über den Interconnect auf den RAM des anderen Prozessors zugreifen muss, verliert Zeit in genau diesen Situationen. Vor allem muss der andere Prozessor dann noch gerade Zeit haben um diese Speicherzugriffe zu erlauben. (
stark vereinfacht ausgedrückt)
Das ist ein Grund, warum man es mehr oder weniger vermeiden sollte, über NUMA Node Grenzen hinweg zu agieren. Es gibt Software, die versteht das Ganze und steuert es, wenn möglich eben so, dass dieser Umstand wenig bis gar nicht zum tragen kommt. Wenn du bspw. mit ESXi arbeitest, dann kann der Hypervisor das grundsätzlich. Legst du nun VMs an, die immer schön in die Ressourcen eines NUMA Nodes rein passen, ist das wenig bis kein Problem. Legst du aber VMs an, die zwanghaft auf die Ressourcen des anderen Prozessors zugreifen MÜSSEN, kann es sehr schnell recht lahm (im Vergleich) werden...
-> es ist also ziemlich unsinnig, so eine Konstellation überhaupt im Betracht zu ziehen, wenn es Alternativen dafür gibt. Und die hast du, da die Anzahl deiner Speicheriegel exakt eine gleichsame Verteilung möglich macht... Warum also nicht nutzen?
PS: mal ganz davon ab, ich würde es sogar vermeiden, die 2GB Riegel überhaupt noch zu nutzen... Geh dich bei Ebay und Co. nach gebrauchten 8GB Reg. ECC Riegeln umsehen, die Teile bekommt man idR quasi hinterher geschmissen. Zur Not wenigstens 4GB Riegel.