Frage Kann man beeinflussen, wie CPUs unter Linux aufgezählt werden?


Ich habe ein HP DL380 G7 mit 2 nicht übereinstimmenden CPUs drin. Einer ist eine Quad-Core-CPU mit schnelleren Kernen und einer ist eine 6-Kern-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 auf CPU0-CPU3 aufzählen, was mir einen Leistungsbonus für a) die Verwendung schneller getakteter Kerne und b) alle Threads auf derselben physischen CPU hält .

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

Die spezifischen CPU-Modelle sind:

Intel (R) Xeon (R) CPU E5649 @ 2.53GHz (Hexadezimalkern)

Intel (R) Xeon (R) CPU E5640 @ 2.67GHz (Vierkern)


31
2017-08-08 11:44


Ursprung


Bitte posten Sie die spezifischen CPU-Modelle aus cat /proc/cpuinfo. - ewwhite
Upvoting, weil ich nicht einmal wusste, dass ungleiche CPUs möglich waren, immer etwas neues zu lernen ... - Kyle Brandt♦
@ Kyle ist möglich, aber nicht unterstützt oder unterstützt von HP. - ewwhite
@ Kasperd In HP-Land, wenn Sie zwei CPUs mit verschiedenen Schritten laden, erhalten Sie eine CPU mismatch detected Fehler beim POST. Das könnte innerhalb einer CPU-Generation passieren; z.B. ein Intel 5606 und 5690 im selben Gehäuse. - ewwhite
Wenn jemand daran interessiert ist, was wir hier eigentlich gemacht haben, haben wir einen Roadtrip nach unten zum Rechenzentrum gemacht und die Quad-Core-CPU physisch von den Servern entfernt - paulos


Antworten:


Was?!? 

Das ist verrückt, Wissen Sie? Es ist nicht unterstützt und wahrscheinlich nicht gut für Ihre Hardware. Sie sollten gleichwertige Prozessoren in Ihrem Server verwenden.

Ich nehme an, du koppelst einfach deine Anwendung in einer Kontrollgruppe oder einem Schild (oder über taskset), die nur die CPU-Kerne enthält, die Sie verwenden möchten. Sie können den Speicherzugriff auch mit dieser CPU verbinden numactl. Aber wirklich, warum würden Sie nicht entweder die langsamere CPU komplett entfernen oder zahlen, was es braucht, um das System in die Spezifikation zu bringen.

Vielleicht ist es naheliegend, wenn Ihre Anwendung fest programmiert ist, CPU0-CPU3 zu benutzen, ist es, die Sockel physikalisch auszutauschen ... aber wirklich, laufen Sie einfach mit einer CPU hier.

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

Bearbeiten:

Okay, das sind zumindest 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).


27
2017-08-08 11:50



Jeder hat die gleiche Reaktion! Ich weiß, dass die CPUs im Idealfall die gleichen wären, aber HP gab uns das damals zurück. Dies ist die Hand, die ich bekommen habe, also muss ich das Beste daraus machen, bis die nächste Hardware-Aktualisierung kommt. Die CPUs sind Xeon E5649 @ 2,53 GHz (Hex-Core) und E5640 @ 2,67 GHz (Quad-Core). Das Entfernen der 6-Kern-CPU ist tatsächlich eine der Optionen auf dem Tisch. Es wäre besser, den Socket vollständig im BIOS deaktivieren zu können, aber es scheint nicht möglich zu sein. - paulos
@paulos Welche Anwendung ist das? - ewwhite
Es funktioniert tatsächlich als Checkpoint-Firewall - paulos
@ Paulos Warum ist dann 2,67 GHz im Vergleich zu 2,53 GHz wichtig? Legen Sie einfach die 6-Kern-CPU in den Server und entfernen Sie die 4-Core-CPU. - ewwhite
re: CPU-Spezifikation, ja ich denke, es ist nur etwa 5% schneller oder so ähnlich. Ich erwarte, dass der Leistungszuwachs darauf zurückzuführen ist, dass alle Worker-Threads und insbesondere der Irq-Sturm von den Netzwerkkarten auf derselben physischen CPU sind. edit: Ja, nur mit der 6-Kern-CPU ist auch eine Möglichkeit. - paulos