LinuxでプロセッサとCPUの詳細をチェックする方法–Command Examples
Processor/Cpu details
私たちが話しているプロセッサに関する詳細には、コアの数、ハイパースレッディングの可用性、アーキテクチャ、キャッシュサイズなどが含まれます。
システム上のcpuに関するこれらの詳細を見つけることは、異なるコマンドがそれらをチェックする方法のため、少し難しいことがあります。使用するコマンドには、lscpu、/proc/cpuinfo、およびlstopo(hwloc)が含まれます。,
これらのコマンドは、cpuコア/処理ユニットに関する詳細な情報を表示します。
次の例では、これらのコマンドの出力をどのように解釈するかを説明します。
1. プロセッサのベンダーとモデル
プロセッサのベンダーとモデル名を見つけるには、grepコマンドを使用して/proc/cpuinfoファイルを検索します。
$ cat /proc/cpuinfo | grep vendor | uniqvendor_id : GenuineIntel
そのIntelプロセッサ。 次に、Intelのwebサイトで正確な仕様をオンラインで検索するために使用できるモデル名を見つけます。
$ cat /proc/cpuinfo | grep "model name" | uniqmodel name : Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz
その”コア2クワッドQ8400″プロセッサ。
2., アーキテクチャ
lscpuコマンドはアーキテクチャを報告します。
$ lscpuArchitecture: x86_64CPU op-mode(s): 32-bit, 64-bitByte Order: Little Endian.....
アーキテクチャはx86_64で、64ビットです。
3. 周波数
プロセッサの周波数/速度は、lscpuと/proc/cpuinfoの両方によって報告されます。
$ lscpu | grep -i mhzCPU MHz: 1998.000
$ cat /proc/cpuinfo | grep -i mhz | uniqcpu MHz : 1998.000
The frequency reported might be lower than the actual frequency specified for the processor because most modern processors operate at lower frequencies to save power. Under load condition they would switch to higher frequency.
周波数の変化は、watchを使用して/proc/cpuinfoの出力を監視することによって見ることができます。,
$ watch -n 0.1 "cat /proc/cpuinfo | grep -i mhz"
ターミナルで上記のコマンドを実行し、実行中にcpuを大量に消費するタスクを並列に起動すると、周波数が増加します。
Every 0.1s: cat /proc/cpuinfo | grep -i mhz Sun Jun 29 15:28:38 2014cpu MHz : 2664.000cpu MHz : 2664.000cpu MHz : 2664.000cpu MHz : 2664.000
4. コア数
プロセッサ上の各コアは、実際の独立したcpuまたはプロセッシングユニットです。 複数のコアにより、プロセッサは複数のプログラム命令を並列に実行することができ、処理速度が向上します。
lscpuコマンドは、”ソケットごとのコア”を示します。
したがって、この場合、プロセッサ上のコアの数は4です。,
/proc/cpuinfoファイルもコアの数を示しますが、少し難しく混乱する可能性があります。
単にプロセッサの数を数えると、間違った数字が得られる可能性があります。
$ cat /proc/cpuinfo | grep "processor"
ハイパースレッドプロセッサの場合、オペレーティングシステムが見るプロセッサの数はコアの数の倍です。 しかし、/proc/cpuinfoには”core id”という名前のフィールドがあり、これは単一のプロセッサの各コアに対して一意のidです。, コアidを数えると、プロセッサ上の実際のコア数が明確に表示されます
$ cat /proc/cpuinfo | grep -i "core id"core id : 0core id : 2core id : 1core id : 3
複数のプロセッサ
まれですが、複数の物理プロセッサを持つシステム(はい、マザーボードに2つ以上のプロセッサが搭載されていることを意味します)を使用している場合、/proc/cpuinfoの結果は異なります。 複数のプロセッサの場合、”物理id”は複数の値を示します。
$ cat /proc/cpuinfo | grep -i "physical id" | uniqphysical id : 0
1つ以上の物理idがある場合、システム上に複数の物理プロセッサがあります。, また、各プロセッサのコアを個別に数える必要があります。
5. Hyper threading
Hyper threadingは、個々のコアが2つの論理演算ユニットのように実行できるようにするIntel技術です。 これにより、限られた方法で各コアの処理能力を増大させる方法がある。
プロセッサにハイパースレッドがあるかどうかを確認するには、2つの異なる値を比較する必要があります。 Firstは実際のコアの数、secondは論理処理ユニットの数です。
コアの数がOSによって見られるように処理ユニットの数に等しい場合、ハイパースレッディングはありません。, そうでなければ、処理ユニットの数がコアの数の倍より大きい場合、はいハイパースレッディング。
number of processing units = number of cores number of processing units = number of cores * 2
コア2クアッドQ8400プロセッサのこの例を見てください
/proc/cpuinfoで示されるプロセッサの数は4です
$ cat /proc/cpuinfo | grep processorprocessor : 0processor : 1processor : 2processor : 3
“cpuコア”=4の数だけでなく、”兄弟”=4と一意の”コアid”=4
したがって、プロセッシングユニットの総数=実際のコアの数。 したがって、このプロセッサにはハイパースレッディングはなく、Intelのwebサイトのプロセッサの仕様からも同じことが確認できます。,
ハイパースレッドプロセッサ
ハイパースレッドが存在する場合、/proc/cpuinfoまたはlscpuの出力は異なります。
“Thread(s)per core:2″に注意してください。これは、コアごとに2つのスレッドがあり、合計4つのコアがあることを示しています。 したがって、OSによって見られる処理ユニットの数は8です。ここで、/proc/cpuinfoの出力を見てみましょう。
“cpuコア”=4および兄弟=8つは、コアごとに4つのコアと2つのハイパースレッドがあることを意味します。 Proc/cpuinfoで示されるプロセッサの数も8になります。,
The HTT flag in dmidecode output and ht flag in /proc/cpuinfo flags might not correctly report hyper threading.
Core2Quad Q8400プロセッサの場合、dmidecodeと/proc/cpuinfoの両方が、プロセッサでハイパースレッディングが利用できないにもかかわらず、ハイパースレッディングフラグ
Hwloc/lstopo
Hwloc(Portable hardware locality)は、プロセッサの構造をきちんとした視覚的な図で報告する小さなユーティリティです。 図は、コア数、ハイパースレッド、キャッシュサイズを示しています。 単一の図はそれをすべて伝えます。,575b2e2d”>
上記の図は明らかに示しています-
総L2キャッシュ-4096KB-4MB
総コア-4
コアあたりの処理ユニット-1
ハイパースレッドプロセッサ
ハイパースレッドプロセッサの場合、hwloc出力図は次のようになります
図は示しています
合計l3キャッシュ-8mb
合計コア-4
コアあたりの処理ユニット-2
結論
linux上のCpu情報をチェックするためのコマンドの詳細については、この記事をチェックしてください:
linux上のcpu情報をチェックするための9コマンド