Kann man die Aufzählung der CPUs unter Linux beeinflussen?

32

Ich habe einen HP DL380 G7 mit 2 nicht übereinstimmenden CPUs. Eine ist eine Quad-Core-CPU mit schnelleren Kernen, und eine ist eine 6-Core-CPU mit langsameren Kernen.

Auf dieser Box starte ich eine Anwendung, die aus lizenzrechtlichen Gründen nur CPU0-CPU3 verwendet.

Für mich wäre es wünschenswert, dass die schnelleren Kerne auf der Quad-Core-CPU im Betriebssystem zu CPU0-CPU3 zählen, was mir einen Leistungsbonus für a) die Verwendung schneller getakteter Kerne und b) die Beibehaltung aller Threads auf derselben physischen CPU gibt .

Gibt es eine Möglichkeit, dies zu erreichen, entweder im BIOS oder in einer Konfigurationsdatei oder einer Boot-Option unter Linux?

Die spezifischen CPU-Modelle sind:

Intel (R) Xeon (R) -CPU E5649 bei 2,53 GHz (Hex-Core)

Intel (R) Xeon (R) -CPU E5640 bei 2,67 GHz (Quad-Core)

paulos
quelle
Bitte posten Sie die spezifischen CPU-Modelle von cat /proc/cpuinfo.
Ewwhite
24
Upvoting, weil ich nicht einmal wusste, dass ungleiche CPUs möglich sind, immer etwas Neues zu lernen ...
Kyle Brandt
2
@kyle ist möglich, wird aber von HP nicht unterstützt oder unterstützt.
Ewwhite
1
@kasperd Wenn Sie in HP-land zwei CPUs mit unterschiedlichen Abstufungen laden, CPU mismatch detectedwird beim POST eine Fehlermeldung angezeigt. Das könnte innerhalb einer CPU-Generation passieren; zB ein Intel 5606 und 5690 im selben Chassis.
Ewwhite
3
Wenn sich irgendjemand dafür interessiert, was wir hier tatsächlich gemacht haben, haben wir einen Roadtrip zum Rechenzentrum gemacht und die Quad-Core-CPU physisch von den Servern entfernt
Paulos,

Antworten:

27

Wut?!?

Das ist verrückt , weißt du? Es wird nicht unterstützt und ist wahrscheinlich nicht gut für Ihre Hardware. Sie sollten Prozessoren mit den gleichen Spezifikationen auf Ihrem Server verwenden.

Ich nehme an, Sie führen Ihre Anwendung einfach in einer C-Gruppe oder einem Shield (oder über taskset) aus, die / der nur die CPU-Kerne enthält, die Sie verwenden möchten. Sie können den Speicherzugriff auf diese CPU auch mit stecken numactl. Aber warum sollten Sie nicht entweder die langsamere CPU komplett ausbauen oder alles bezahlen, um das System auf den neuesten Stand zu bringen?

Wenn Ihre Anwendung für die Verwendung von CPU0-CPU3 fest codiert ist, liegt es möglicherweise auf der Hand, die Sockel physisch auszutauschen.

Wenn Sie sich auf ProLiant DL380 G7-Hardware beziehen, ist Ihre "schnellere" CPU wahrscheinlich ein Prozessor der Nehalem 5500-Serie, während die langsamere Hex-Core-CPU eine Westmere-CPU ist. Haben Sie überhaupt ein Benchmarking durchgeführt? Welche spezifischen CPUs sind installiert?

Bearbeiten:

Okay, das sind also mindestens CPUs der gleichen Generation / Stepping. Aber es ist immer noch eine schlechte Idee ... Der Unterschied in der CPU-Spezifikation ist nicht einmal so groß (im Vergleich zu einem Intel X5690 mit 3,47 GHz).

ewwhite
quelle
4
Jeder hat die gleiche Reaktion! Ich weiß, dass die CPU im Idealfall gleich wäre, aber genau das hat uns HP damals gegeben. Dies ist die Hand, die mir gegeben wurde, also muss ich das Beste daraus machen, bis die nächste Hardware-Aktualisierung kommt. Die CPUs sind Xeon E5649 bei 2,53 GHz (Hex-Core) und E5640 bei 2,67 GHz (Quad-Core). Das vollständige Entfernen der 6-Kern-CPU ist eine der verfügbaren Optionen. Es wäre besser, wenn Sie den Socket vollständig im BIOS deaktivieren könnten, dies scheint jedoch nicht möglich zu sein.
Paulos
@paulos Welche Anwendung ist das?
ewwhite
Es funktioniert tatsächlich als Checkpoint-Firewall
Paulos
3
@paulos Warum ist dann 2,67 GHz im Vergleich zu 2,53 GHz wichtig? Setzen Sie einfach die 6-Kern-CPU in den Server ein und entfernen Sie die 4-Kern-CPU.
Ewwhite
re: CPU spec, ja ich denke es geht nur um 5% schneller oder so ähnlich. Ich erwarte, dass der Leistungsgewinn darauf zurückzuführen ist, dass sich alle Worker-Threads und insbesondere der Sturm des Irak auf den Netzwerkkarten auf derselben physischen CPU befinden. edit: Ja nur mit der 6 Core CPU ist auch möglich.
Paulos