
top を実行すると、CPU 0-7 が表示されます。次のようにします。
cat /proc/cpuinfo | grep "cpu cores" | uniq
次のような結果になります:
cpu cores : 4
「physical id」をgrepすると、1になります。
私のコマンドが間違っていて、top が正しいのではないかと思います。これは VM ではなく、物理サーバー、RedHat です。何が間違っているのでしょうか?
これらが答えになるかはわかりません:
Linux でシステムのコア数を知るにはどうすればいいですか?
編集: 物理 ID が 1 しか表示されない場合、マザーボードに物理チップが 1 つあるということになりますか?
編集: Intel(R) Xeon(R) CPU X5560 @ 2.80GHz ですが、物理 ID は 1 で、0 になると思っていましたが、cpuinfo には物理 ID 0 がありません。
編集: 重要であれば、コア数を 0.5 にするライセンスを検討しています。
答え1
X5560はシングルチップ次のようになります。
grep "physical id"
物理プロセッサが 1 つインストールされていることを示しています。
ヒートスプレッダーを上から外すと、これが見えます。単一の物理的な死ぬ(下向き) :
そのサイコロを取り外して裏返すと、次のようになります。
その一つの物理的なサイコロには4つの物理CPUコアシリコン上に構築:
grep "cpu cores"
プロセッサに 4 つの物理コアが組み込まれていることを示しています。
各コアは、浮動小数点ユニット、複数の整数実行ユニット、一対のレジスタ スタック、および各コアが 2 つの独立した命令ストリーム (スレッド) を同時に効率的に実行できるようにするその他の機能を備えた単一のプロセッサです。
top
これは、コンピューター上のすべてのプロセッサとコアが、総合的に、一度に 8 つの独立したワークフローを実行できることを示しています。つまり、オペレーティング システムが、任意の時点で 8 つの同時スレッドの実行をスケジュールできることを示しています。
答え2
使用している CPU は何ですか? 物理コアあたりのスレッド数はいくつですか?
cat /proc/cpuinfo
物理コアの数が表示され、top
存在するスレッドの合計数も表示されます。
あなたの CPU には 4 つの物理コアと、物理コアごとに 2 つの論理コアがあると思います。つまり、top
8 と表示されます。
さらに、 の内容は/proc/cpuinfo
実装に多少依存します。ルート化された Android シェルと同様に、cpuinfo
ファイルには用語は含まれませんcpu cores
。
ただし、cpuinfo
各スレッドは という名前でprocessor : X
、 はX
スレッド番号です。したがって、最後のスレッド番号は出力と同じになりますtop/htop
。
の結果はnproc --all
、top/htop
答え3
top
論理 CPU ごとに 1 つの「CPU」が表示されます。x86 では、これはシステム内のソケット数、ソケットあたりの物理コア数、コアあたりのスレッド数の積になります。
のエントリcpu cores
は/proc/cpuinfo
、x86 の場合も物理コアの数を示します。 で使用されている論理コアの数を確認するにはtop
、代わりに次の値を確認する必要がありますsiblings
。
cat /proc/cpuinfo | grep "siblings" | uniq
これについては、カーネルドキュメント。
lscpu
インストールされている CPU に関する情報を提供します。これは、より理解しやすいものです/proc/cpuinfo
(または、同じ情報をよりシンプルな方法で提示します)。
答え4
cpuinfo は実際のコアを表示しますが、htop/top はコアとスレッドの両方をコアとして表示します。おそらく 4 つのコアと 4 つのスレッドがあるのでしょう。