🧲

Linux/Mac CPUのコア数・スレッド数を調べるコマンド

2024/09/23に公開

make の並列オプション指定など、コマンドを用いてCPUのコア数(物理コア数)、スレッド数(論理コア数)を取得したい場合があります。

Linux/Mac でコマンドが違い、いつもわからなくなるのでまとめておきます。

検証環境

Linux: AMD Ryzen 5 2600 Six-Core Processor
Mac: Apple M1

コア数(物理コア数)を出力する

/proc/cpuinfo を使う (Linux)

/proc/cpuinfo の出力を grep します。

$ grep core.id /proc/cpuinfo | sort -u | wc -l
6

sysctl コマンドを使う (Mac)

$ sysctl -n hw.physicalcpu_max
8

スレッド数(論理コア数)を出力する

nproc コマンドを使う (主に Linux)

$ nproc --all
12

--all コマンドを指定すると、taskset コマンドのようにCPUの割り当てを制限した上で実行しても、マシンに搭載されたプロセッサー数を正しく出力してくれます。

逆に言うと、--all オプションを付けなければ正しい値を返さない場合があります。

$ taskset -c 0,1 nproc
2

なお nproc コマンドは GNU coreutils に含まれているので、Macでも Coreutils がインストールされていれば使用することができます。

/proc/cpuinfo を使う (Linux)

/proc/cpuinfo の出力を grep します。

$ grep processor /proc/cpuinfo | wc -l
12

sysctl コマンドを使う (Mac)

$ sysctl -n hw.logicalcpu_max
8
GitHubで編集を提案

Discussion