Linuxが稼働しているPCのコア数を調べる方法を以下に記します。
/proc/cpuinfoの情報をgrepを使って調べてみます。
/proc/cpuinfoにはプロセッサの情報が格納されていますので、以下に記述したコマンド群でプロセッサ数を表示しました。
尚、cat /proc/cpuinfo コマンドでCPUの情報をより詳細に確認することができます。
2種類のIntel CPUで動作確認をしました。
Intel(R) Xeon(R) CPU E5504で確認した手順です。
$ cat /proc/cpuinfo | grep processor processor : 0 processor : 1 processor : 2 processor : 3
プロセッサが4つあることがわかります。
次にphysical idを調べてみます。
$ cat /proc/cpuinfo | grep "physical id" physical id : 0 physical id : 0 physical id : 0 physical id : 0
物理的なCPUは1つだということがわかります。(すべて同一idのため、PCには1つの物理CPUが搭載されていることがわかります。)
次にcpu coresを調べてみます。
$ cat /proc/cpuinfo | grep "cpu cores" cpu cores : 4 cpu cores : 4 cpu cores : 4 cpu cores : 4
core数が4つであることが確認できました。
Intel(R) Xeon(R) CPU E5504はHT(ハイパー・スレッディング・テクノロジー)が非対応なので、PCには1つの物理CPUが搭載されており(physical idで判別)、この物理CPUには4コアであること(cpu coresで判別)がわかります。
Intel(R) Pentium(R) 4 CPU 3.20GHzで確認した手順です。
$ cat /proc/cpuinfo | grep processor processor : 0 processor : 1
プロセッサが2つあることがわかります。
(以下の手順をすると、この2つのプロセッサは論理プロセッサ数だと判別できます。)
次にphysical idを調べてみます。
$ cat /proc/cpuinfo | grep "physical id" physical id : 0 physical id : 0
物理的なCPUは1つだということがわかります。(すべて同一idのため、PCには1つの物理CPUが搭載されていることがわかります。)
次にcpu coresを調べてみます。
$ cat /proc/cpuinfo | grep "cpu cores" cpu cores : 1 cpu cores : 1
core数が1つであることが確認できました。
Intel(R) Pentium(R) 4 CPU 3.20GHzはHT(ハイパー・スレッディング・テクノロジー)が対応なので、PCには1つの物理CPUが搭載されており(physical idで判別)、この物理CPUには1コアであること(cpu coresで判別)がわかります。
また、processor数が2つなので(cpu coresは1つ)、HTにより2つのCPUに見ているのが確認できます。