web-dev-qa-db-ja.com

topにcpuinfoとは異なるコア数が表示されるのはなぜですか?

Topを実行すると、CPU 0〜7が表示されます。私がする時:

cat /proc/cpuinfo | grep "cpu cores" | uniq

私は得ます:

cpu cores : 4

「物理ID」をgrepすると、1になります。

私のコマンドは間違っていて、トップは正しいと思います。これはVMではなく、物理サーバー、RedHatではありません。何が問題なのですか?

私はこれらがそれに答えるかはわかりません:

Linuxのシステムのコア数を知る方法

/ proc/cpuinfoのプロセッサ数

編集:私はその物理IDを修正しますが、1しか表示されない場合、マザーボードに1つの物理チップがありますか?

編集:これはIntel(R)Xeon(R)CPU X5560 @ 2.80GHzですが、物理IDは1であり、0になると思っていましたが、cpuinfoに物理ID 0がありません。

編集:それが重要な場合、私は彼らがどこでコアライセンスを行うかについてライセンスを把握しようとしています。

8
johnny

どのCPUを使用していますか?物理コアごとにいくつのスレッドが存在しますか?

cat /proc/cpuinfoは物理コアの数を示し、topは存在するスレッドの総数を示します。

CPUには4つの物理コアと、物理コアごとに2つの論理コアがあると思います。つまり、topは8を示しています。

さらに、/proc/cpuinfoの内容は、実装によって多少異なります。 rootのようにAndroid Shellの場合、cpuinfoファイルにはcpu coresという用語が含まれていません。

ただし、cpuinfoでは、各スレッドの名前はprocessor : Xです。ここで、Xはスレッド番号です。したがって、最後のスレッドはtop/htop出力と同じではありません。

nproc --allの結果もtop/htopと一致する必要があります

14
Abhik Bose

X5560はシングルチップです。次のようになります。

enter image description here

grep "physical id"は、1つの物理プロセッサがインストールされていることを示しています。

ヒートスプレッダーを上部から外すと、これを確認できます-単一の物理的なdie(下向き):

enter image description here

そのダイを取り外して裏返すと、次のようになります。

enter image description here

その単一の物理ダイには、4つの物理CPUコアがシリコン上に構築されています。

enter image description here

grep "cpu cores"は、プロセッサに4つの物理コアが組み込まれていることを示しています。

各コアは、浮動小数点ユニット、多数の整数実行ユニット、レジスタスタックのペア、および各シングルコアが同時に2つの独立した命令ストリーム(スレッド)を効果的に実行できるようにするいくつかのウィザードを備えたシングルプロセッサです。

enter image description here

topは、コンピューター上のすべてのプロセッサとコアをまとめて一度に8つの独立したワークフローで実行できることを示しています。これは、オペレーティングシステムが同時に8つの同時実行スレッドをスケジュールできることを示しています。 。

16
J...

topは、論理CPUごとに1つの「CPU」を示します。 x86では、これは、システム内のソケット数、ソケットあたりの物理コア数、コアあたりのスレッド数の積です。

cpu cores/proc/cpuinfoエントリは、x86でも、物理コアの数を示しています。 topで使用される論理コアの数を見つけるには、代わりにsiblings値を確認する必要があります。

cat /proc/cpuinfo | grep "siblings" | uniq

これは カーネルのドキュメント で詳しく説明されています。

lscpuは、インストールされたCPUに関する情報を提供します。これは、/proc/cpuinfoよりも理解しやすくなっています(または、同じ情報をより簡単に表示します)。

7
Stephen Kitt

おそらく、「クアッドコア」CPUであるCPUが1つあり、ハイパースレッディングが有効になっているため、各物理コアはOSに(カーネルに対して)2つのlogicalコアとして表示され、2つのコアを持つことができます。同じ物理コアに同時に割り当てられたスレッド。

ここで確実に理解するための重要な用語は次のとおりです。CPU、または物理チップ、または「ダイ」(「ソケット」に関連)。次に、物理コア。次に、「プロセス」と「スレッド」を把握していることを確認してください。次に、「ハイパースレッディング」と「論理コア」をクリアします。

私はこれを非常にうまくクリアするリサ2017での講演に出席しました。その話のスライド オンラインで利用可能 ですが、もちろん実際には話せませんできるだけ多く(話された部分がないため)。

3
Wildcard

cpuinfoは実際のコアを表示しますが、htop/topはコアとスレッドの両方をコアとして表示します。おそらく4つのコアと4つのスレッドがあるためです。

1
AsenM