環境
Ubuntu20.4 + Vagrant(Windows10)
はじめに
自分が普段利用しているマシンのスペックについて気になったため、CPUの環境についての記事を書いてみました。
自分の環境は、VirtualBoxを使って仮想的にUbuntuを動かしており、ホストマシンはWindows10です。Windowsであれば、タスクマネージャーからCPUの情報を確認することができます。タスクマネージャーから調べた情報と、Ubuntuで調べた情報が同じであるかといえば、同じではありません。VirtualBoxで仮想マシンに割り当てたCPUの数に制限を儲けているためです。ホストマシンのCPUを全て仮想マシンに割り当ててしまうと、ホストマシン側でスペックが下がってしまうため、塩梅よく資源を振り分けて利用しています。
CPUの情報を調べる
CPUの情報は /proc/cpuinfoに格納されています。つぎのコマンドを実行すると、タイムスタンプが、OSを起動した時間になっています。OSを起動する度に新規に作成されるファイルとなっています。そもそも、/procはメモリ上に展開されるディレクトリであり、/proc上に作成されるファイルは普通のファイルとは異なり、仮想ファイルと呼ばれます。
$ls -l /proc/cpuinfo
・物理的に搭載されているCPUの数を調べる(ソケットの数)
物理的なCPUの数を調べます。Windowsのタスクマネージャーを見ると、ソケットという数で表されます。マザーボード上にあるソケットの数と物理的なCPUの数は1対1のはずです。どちらで表現しても同じ意味になります。
CPUの物理的な数を調べるには、/proc/cpuinfoのphysical.idで調べることができます。つぎのコマンドを実行すると、0の表示が3つ出てきます。0はCPUの数が0個という意味ではなく、CPUが1個存在するという意味になります。物理的なCPUが2つある場合は、ここが1になります。
$grep physical.id /proc/cpuinfo
physical id : 0
physical id : 0
physical id : 0
純粋にCPUの数だけを表示させたい場合は、つぎのコマンドを実行すると、スマートにCPUの数だけが表示されます。
$grep physical.id /proc/cpuinfo | sort -u | wc -l
1
・1つのCPUのコア数を調べる
物理的なCPUの数ではなく、コア数(論理的なCPUの数)を調べたい場合はつぎのコマンドで調べます。ここで注意なのは、表示されるのは、1つの物理的なCPUに搭載されているコアの数です。physical.idでCPUの番号が1であった場合、つまり、物理的にCPUが2個装着されている場合は、ここで表示されたコア数×2が搭載されている全コアの総数ということになります。
$ grep cpu.cores /proc/cpuinfo
cpu cores : 3
cpu cores : 3
cpu cores : 3
CPUごとのコア数だけをシンプルに表示したい場合は、つぎのコマンドで表示させることができます。
$grep cpu.cores /proc/cpuinfo | sort -u
cpu cores : 3
・(論理的な)CPUの総数を調べる
上記で調べた情報は、どちらかと言えばあまりどうでもいい情報です。一番知りたいことは、実際に搭載されているCPU(論理的な)の総数です。つぎのコマンドで調べることができます。コマンドを実行すると、論理的なCPUの数は3個だということが分かりました。
自分の環境では、1つのCPUに搭載されているコア数とCPUの(論理的)総数が同じ3個どうしでした。つまり、シングルコアだということです。
$grep processor /proc/cpuinfo
processor : 0
processor : 1
processor : 2
論理的なCPUの数をシンプルに表示したい場合は、つぎのコマンドで表示させることができます。
$grep processor /proc/cpuinfo | wc -l
3