まず結論 ── lscpu で CPU 情報を一覧表示する
CPU の型番・コア数・スレッド数・クロック周波数をまとめて確認したいときは lscpu が最速です。/proc/cpuinfo を直読みするより格段に見やすく整形されており、スクリプト連携にも対応しています。
lscpu
出力例(AlmaLinux 9 / Ubuntu 24.04 LTS 共通):
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Vendor ID: GenuineIntel
Model name: Intel(R) Xeon(R) Silver 4210R CPU @ 2.40GHz
CPU family: 6
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
CPU MHz: 2400.000
CPU max MHz: 3200.0000
CPU min MHz: 1000.0000
Caches (sum of all):
L1d: 64 KiB (2 instances)
L1i: 64 KiB (2 instances)
L2: 2 MiB (2 instances)
L3: 13.75 MiB (1 instance)
読み方のポイントは2つです。CPU(s) が論理 CPU 数(OS から見えるスレッド数の合計)で、Core(s) per socket × Socket(s) が物理コア数になります。並列ビルドのジョブ数や Java の -XX:ActiveProcessorCount を設定するときはこの区別が重要です。
lscpu は util-linux パッケージに含まれており、主要ディストリビューションでは追加インストール不要で使えます。CentOS 6 時代は /proc/cpuinfo を直読みする手順が主流でしたが、現在は lscpu を第一選択にするほうが可読性・再現性ともに優れています。
コア数・スレッド数だけをスクリプトで取り出す
スクリプトや Makefile の中でコア数だけが必要なら nproc が一番シンプルです。利用可能な論理 CPU 数を数値のみ返します。
# 論理 CPU 数(スレッド数の合計)を取得
nproc
# 物理コア数(ソケット数 × ソケットあたりのコア数)を計算
lscpu | awk '/Core\(s\) per socket:/{c=$NF} /Socket\(s\):/{s=$NF} END{print c*s}'
nproc はビルド並列数の自動設定イディオムとしてよく使われます。
# make の並列ジョブ数をコア数に合わせる
make -j$(nproc)
ハイパースレッディングが有効な環境では nproc が返す値(論理 CPU 数)はおおむね物理コア数の2倍になります。CPU バウンドな処理では物理コア数を上限にしたほうがスループットが安定するケースがあるため、両方の値を把握しておくと判断の精度が上がります。
/proc/cpuinfo で特定情報だけを grep する
/proc/cpuinfo はカーネルが公開する CPU の生情報です。コア数分のブロックが連続して出力されるため、cat で全量を表示するより grep で必要な行だけ絞るのが実務的です。
# CPU 型番を1行で確認(最初のブロックのみ)
grep -m 1 "model name" /proc/cpuinfo
# 論理 CPU 数をカウント
grep -c "^processor" /proc/cpuinfo
# 仮想化支援・命令セット拡張フラグを確認
grep -m 1 "^flags" /proc/cpuinfo | tr ' ' '\n' | grep -E "^(vmx|svm|aes|avx|avx2)"
出力例:
model name : Intel(R) Xeon(R) Silver 4210R CPU @ 2.40GHz
4
vmx
aes
avx
avx2
仮想化支援フラグの確認は KVM 環境を構築する前に必須です。vmx(Intel VT-x)または svm(AMD-V)が表示されなければ、BIOS/UEFI 側でハードウェア仮想化支援を有効にする必要があります。フラグが存在しても BIOS 設定で無効化されていると /proc/cpuinfo には出てこないため、ここで確認できれば即座に KVM を使える状態と判断できます。
仮想環境・クラウド環境での確認ポイント
VM やコンテナ上で lscpu を実行すると、ゲストに割り当てられた仮想 CPU 数が表示されます。物理ホストの実装とは対応しないため、次の点を押さえておくと誤解を防げます。
ハイパーバイザーの種類を確認する:lscpu の出力に Hypervisor vendor と Virtualization type が表示される場合、VM 環境であることを示しています。
lscpu | grep -E "Hypervisor|Virtualization"
出力例(KVM ゲスト上):
Virtualization type: full
Hypervisor vendor: KVM
クラウド(AWS EC2・Google Cloud・Azure)での注意点として、インスタンスタイプによって lscpu が返す CPU モデル名がホストの物理 CPU と異なる場合があります。ある本番環境への移行作業では、EC2 上の lscpu が異なる CPU ファミリーを返したため、コンパイルオプションの最適化フラグ選定でつまずいた事例があります。クラウド環境では CPU モデル名よりも flags の内容(avx2・avx512f など)を優先して確認するほうが確実です。
ベアメタルサーバーで物理ソケット情報を取得する(要 root)
物理サーバーでソケット構成や製品シリアルなどの詳細ハードウェア情報が必要なときは dmidecode を使います。BIOS/UEFI から直接読み出すため、VM 上では正確な値が取れないことがある点に注意してください。
# root 権限または sudo が必要
sudo dmidecode -t processor | grep -E "Socket Designation|Version|Core Count|Thread Count"
出力例(デュアルソケット構成):
Socket Designation: CPU1
Version: Intel(R) Xeon(R) Silver 4210R CPU @ 2.40GHz
Core Count: 10
Thread Count: 20
Socket Designation: CPU2
Version: Intel(R) Xeon(R) Silver 4210R CPU @ 2.40GHz
Core Count: 10
Thread Count: 20
デュアルソケット構成では Socket Designation が CPU1 と CPU2 の両方出力されます。lscpu の Socket(s): 2 と照合しながら確認すると、NUMA トポロジーの把握にもつながります。
dmidecode が入っていない場合は以下でインストールできます。
# Ubuntu / Debian 系
sudo apt install dmidecode
# RHEL / AlmaLinux / Rocky Linux 系
sudo dnf install dmidecode
状況別コマンド早見き
用途に応じてコマンドを使い分けると確認作業が最短で片付きます。
CPU 型番・コア数・周波数をまとめて確認したい → lscpu
スクリプト内でコア数だけ数値で取得したい → nproc(論理 CPU 数)または lscpu | awk ...(物理コア数)
仮想化支援フラグや命令セット拡張を確認したい → grep -m 1 "^flags" /proc/cpuinfo | tr ' ' '\n'
ベアメタルの物理ソケット構成を正確に把握したい → sudo dmidecode -t processor
VM か物理かを判断したい → lscpu | grep Hypervisor(出力があれば仮想環境)
「コマンドは打てる。次は”現場で通用する型”を最短で身につけたい」——そんなあなたへ。
ネットの断片的なTipsをコピペするだけでは、体系的な運用スキルはなかなか積み上がりません。リナックスマスター.JPの無料メルマガ「リナマガ」では、現場で実際に使うLinuxサーバー運用の考え方を、順を追って実務目線でお届けしています。いま登録された方には、安全なサーバー構築の「型」をまとめた『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼント中です。
>> 図解60P『Linux入門マニュアル』を無料で受け取る
(メルマガ登録は10秒・いつでも解除OK)
※ 「独学の時間がもったいない」「プロから現場の技術を最短で学びたい」という本気の方には、2日で実務レベルが身につく初心者向けハンズオンセミナーもご用意しています。
