次のコマンドを実行しています。
cat /proc/cpuinfo | /bin/egrep 'processor|model name|cache size|core|sibling|physical'
これにより、次の出力が提供されます。
processor : 0
model name : Intel(R) Xeon(R) CPU E5520 @ 2.27GHz
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
address sizes : 40 bits physical, 48 bits virtual
processor : 1
model name : Intel(R) Xeon(R) CPU E5520 @ 2.27GHz
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 1
cpu cores : 4
address sizes : 40 bits physical, 48 bits virtual
ht
したがって、cpuinfo出力全体のフラグと兄弟はCPUコアの2倍であるため、ハイパースレッディングがオンになっていることがわかります。
これは、HTが有効になっている物理クアッドコアプロセッサのみがあり、それが違うという意味ですか?
なぜプロセッサレコードが2つ(コアID 0と1)しかリストされていないのかわかりません。コア2とコア3の別の2つのレコードが必要ですか?
*注:lscpuを実行すると、「CPU数を確認できません」というエラーが発生します。
答え1
上記の出力でcat /proc/cpuinfo
次の情報を見ることができます。
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
これを見てください。インテルプロセッサの仕様ページには、プロセッサに4つのコアがあることがはっきりと示されています。だからcpuinfo
そうです。
また、ピア数が8個、CPUコア数が4個であることがわかります。 CPU コア数 4 はプロセッサのコアの総数です。
ほとんどの新しいプロセッサは、電力とバッテリーを節約するように設計されています。つまり、すべてのコアを同時に実行する必要はありません。の内容は/proc/cpuinfo
実装によって多少異なり、誤解を招くのでハードウェア情報を正しく報告する必要はありません。実際、/proc/cpuinfo
これはLinuxにあるハードウェアに関する完全な情報を得ることができる数少ない場所の1つです。
正確な CPU 数を計算するには、[nproc][1]
coreutils のコマンドを使用します。このコマンドは、現在のプロセスで使用可能な処理装置の数を印刷します。
インストールされているすべてのコア/プロセッサーの数を見つけるには、次のコマンドを実行します。nproc次のように:
nproc --all
--all print the number of installed processors
/proc/cpuinfo
プロセッサ数の詳細については、次を参照してください。ここ