web-dev-qa-db-ja.com

LinuxでのCPUの列挙方法に影響を与えることは可能ですか?

2つの不一致なCPUが搭載されたHP DL380 G7を使用しています。 1つはより高速なコアを備えたクアッドコアCPUであり、もう1つはより低速なコアを備えた6コアCPUです。

このボックスで、ライセンス上の理由によりCPU0-CPU3のみを使用するアプリケーションを実行します。

私にとっては、クアッドコアCPUのより高速なコアがオペレーティングシステムのCPU0-CPU3に列挙され、a)より高速なクロックコアを使用し、b)すべてのスレッドを同じ物理CPUに維持することでパフォーマンスボーナスを得ることが望ましい。

これをBIOS内で、またはLinuxの構成ファイルまたはブートオプションで行う方法はありますか?

特定のCPUモデルは次のとおりです。

Intel(R)Xeon(R)CPU E5649 @ 2.53GHz(hex core)

Intel(R)Xeon(R)CPU E5640 @ 2.67GHz(クアッドコア)

32
paulos

Wut?!?

これはcrazyですよね?これはサポートされておらず、ハードウェアに適していない可能性があります。サーバーでは、仕様が同じプロセッサを使用する必要があります。

使用したいCPUコアのみを含むcgroupまたはシールド(またはtasksetを介して)でアプリケーションを単純に実行するとします。 numactlを使用して、そのCPUへのメモリアクセスを固定することもできます。しかし、本当に、低速のCPUを完全に削除するか、システムを仕様に組み込むために必要な費用を払わないのはなぜでしょうか。

アプリケーションがCPU0-CPU3を使用するようにハードコーディングされている場合、明らかなことは、ソケットを物理的に交換することです...しかし、実際には、ここでは1つのCPUで実行します。

ProLiant DL380 G7ハードウェアを参照している場合、「より高速な」CPUはNehalem 5500シリーズprocであり、低速のヘキサコアCPUはWestmereです。ベンチマークをすべて行いましたか?どの特定のCPUがインストールされていますか?

編集:

さて、これらは少なくとも同じ世代/ステッピングのCPUです。しかし、それはまだ悪い考えです... CPU仕様の違いはそれほど大きくありません(対して3.47GHzのIntel X5690のようなもの)。

27
ewwhite