lscpuコマンドでCPU情報を確認する方法|コア数・スレッド数・アーキテクチャの読み方も

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, システム管理コマンド > lscpuコマンドでCPU情報を確認する方法|コア数・スレッド数・アーキテクチャの読み方も
「このサーバー、何コアのCPUが乗ってるんだっけ?」
運用作業中に急に確認が必要になる場面、誰でも一度は経験があるはずです。

/proc/cpuinfoを直接catすれば情報は取れますが、出力が長くて読みにくい。
そんなときに使いたいのが lscpuコマンド です。

この記事では、lscpuコマンドの基本的な使い方から、出力の読み方、仮想化環境での活用、
スクリプトへの組み込み方法まで体系的に解説します。

実行環境:RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みです。

この記事のポイント

・lscpuコマンド1本でコア数・スレッド数が一目でわかる
・「CPU(s)」と「Thread(s) per core」の掛け算でスレッド総数を確認できる
・-e オプションで各CPUの状態をテーブル形式で確認できる
・--json オプションでスクリプトへの組み込みにも対応している


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

lscpuとは何か?/proc/cpuinfoとの違い

lscpuはLinuxカーネルが管理するCPU情報を人間が読みやすい形式で表示するコマンドです。
util-linuxパッケージに含まれており、主要なLinuxディストリビューションには最初からインストールされています。

同じCPU情報を取得するコマンドとして /proc/cpuinfo を読む方法もありますが、両者には明確な使い分けがあります。
比較項目 lscpu /proc/cpuinfo
出力の見やすさ 構造化されて読みやすい ローレベルで長大
コア数の把握 一目でわかる processor行を数える必要がある
スクリプト活用 --json オプションで構造化出力 grepやawkで加工が必要
キャッシュ情報 L1d / L1i / L2 / L3 を分けて表示 cache size のみ
仮想化情報 Hypervisor / 仮想化方式を明示 flags欄から自分で判断
現場では「サーバーのスペックを素早く確認したい」「スクリプトでCPU数を動的に取得したい」という場面でlscpuが便利です。

lscpuコマンドの基本的な使い方

1. インストール確認

lscpuはutil-linuxパッケージに含まれているため、ほとんどの環境で追加インストール不要です。
念のため確認する場合は以下のコマンドを実行してください。

# RHEL / CentOS / Rocky Linux の場合 $ rpm -q util-linux # Ubuntu / Debian の場合 $ dpkg -l util-linux

インストールされていない場合は以下でインストールできます。

# RHEL系 $ sudo dnf install util-linux # Ubuntu系 $ sudo apt install util-linux

2. 基本実行と出力の読み方

オプションなしで実行するだけで、CPUの主要情報が一覧表示されます。

$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 46 bits physical, 48 bits virtual Byte Order: Little Endian CPU(s): 8 On-line CPU(s) list: 0-7 Vendor ID: GenuineIntel BIOS Vendor ID: Intel Model name: Intel(R) Xeon(R) E-2234 CPU @ 3.60GHz BIOS Model name: Intel(R) Xeon(R) E-2234 CPU @ 3.60GHz BIOS CPU family: 6 CPU family: 6 Model: 158 Thread(s) per core: 2 Core(s) per socket: 4 Socket(s): 1 Stepping: 13 CPU max MHz: 4800.0000 CPU min MHz: 800.0000 BogoMIPS: 7200.00 L1d cache: 128 KiB (4 instances) L1i cache: 128 KiB (4 instances) L2 cache: 1 MiB (4 instances) L3 cache: 8 MiB (1 instance)

出力の各フィールドの意味を押さえておきましょう。
フィールド名 意味 上記の例での値
Architecture CPUアーキテクチャ(x86_64/aarch64など) x86_64
CPU(s) 論理CPU数(全スレッド数) 8
Thread(s) per core 1コアあたりのスレッド数 2(ハイパースレッディング有効)
Core(s) per socket 1ソケットあたりの物理コア数 4
Socket(s) 物理CPUソケット数 1
CPU max MHz 最大動作クロック周波数 4800 MHz
L1d cache L1データキャッシュ容量 128 KiB × 4コア
L3 cache L3共有キャッシュ容量 8 MiB
「物理コア数」と「論理CPU数」の計算式を覚えておくと混乱しません。
論理CPU数 = ソケット数 × コア数 / ソケット × スレッド数 / コア
上の例では 1 × 4 × 2 = 8 が CPU(s) の値と一致します。

よく使うオプションと実務活用

1. -e オプション:各CPU論理コアの状態を確認する

サーバーの物理コアと論理コアの対応関係を確認したい場合に使います。
特にNUMAアーキテクチャのサーバーや、コアをオフラインにしている環境で役立ちます。

$ lscpu -e CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ MHZ 0 0 0 0 0:0:0:0 yes 4800.0000 800.0000 3600.0000 1 0 0 1 1:1:1:0 yes 4800.0000 800.0000 3600.0000 2 0 0 2 2:2:2:0 yes 4800.0000 800.0000 3600.0000 3 0 0 3 3:3:3:0 yes 4800.0000 800.0000 3600.0000 4 0 0 0 0:0:0:0 yes 4800.0000 800.0000 3600.0000 5 0 0 1 1:1:1:0 yes 4800.0000 800.0000 3600.0000 6 0 0 2 2:2:2:0 yes 4800.0000 800.0000 3600.0000 7 0 0 3 3:3:3:0 yes 4800.0000 800.0000 3600.0000

CPU 0と4がCORE 0の同じ物理コアに紐づいていることがわかります。
これがハイパースレッディング(Intel HT)の仕組みです。
dmidecode でハードウェア情報を取得するとCPUの詳細な物理情報も合わせて確認できます。

2. --json オプション:シェルスクリプトへの組み込み

スクリプトでCPU数を動的に取得したい場合は --json オプションが便利です。

# CPU数を変数に代入する(jqコマンドを使う方法) $ CPU_COUNT=$(lscpu --json | jq -r '.lscpu[] | select(.field=="CPU(s):") | .data') $ echo "CPU数: ${CPU_COUNT}" CPU数: 8 # jqが使えない環境ではgrepとawkで代替 $ CPU_COUNT=$(lscpu | grep "^CPU(s):" | awk '{print $2}') $ echo "CPU数: ${CPU_COUNT}" CPU数: 8

Linux ポート確認の全コマンドのようなシステム状態確認スクリプトにCPU情報を組み込む場面でも役立ちます。

3. 特定フィールドだけを抽出する

「コア数だけ知りたい」「アーキテクチャだけ確認したい」という場面では grep と組み合わせて使います。

# アーキテクチャを確認 $ lscpu | grep "^Architecture" Architecture: x86_64 # 物理コア数を確認 $ lscpu | grep "^Core(s) per socket" Core(s) per socket: 4 # 論理CPU数(スレッド総数)を確認 $ lscpu | grep "^CPU(s):" CPU(s): 8 # ソケット数を確認 $ lscpu | grep "^Socket(s)" Socket(s): 1

仮想化環境でのlscpu活用

クラウドやVMware上の仮想マシンでlscpuを実行すると、仮想化に関する情報も表示されます。
この情報はトラブルシュート時の前提確認として重要です。

# KVM上の仮想マシン(AWS EC2など)での実行例 $ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 2 On-line CPU(s) list: 0-1 Vendor ID: GenuineIntel Model name: Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz Thread(s) per core: 1 Core(s) per socket: 2 Socket(s): 1 Virtualization: VT-x Hypervisor vendor: KVM ← 仮想化基盤を示す Virtualization type: full ← 完全仮想化であることを示す

フィールド 表示される値の例 意味
Hypervisor vendor KVM / VMware / Microsoft / Xen 仮想化基盤の種類
Virtualization type full / para 完全仮想化か準仮想化か
Virtualization VT-x / AMD-V CPUの仮想化支援機能
「このサーバーは物理機なのかVM上なのか」を判断したいときも、lscpuの Hypervisor vendor 欄で即座に確認できます。

トラブルシュート・エラー対処

「lscpu: コマンドが見つかりません」が表示された場合

util-linuxパッケージがインストールされていない可能性があります。
最小インストール構成のコンテナイメージなどで発生しやすいエラーです。

# RHEL / Rocky Linux $ sudo dnf install util-linux # Ubuntu / Debian $ sudo apt install util-linux # インストール確認 $ which lscpu /usr/bin/lscpu

L3キャッシュが表示されない場合

一部のARM系プロセッサや組み込みCPUでは、L3キャッシュを持たない設計のものがあります。
「L3 cache:」行が表示されない場合はL3キャッシュなしの構成です。
dmidecode でハードウェア情報を取得すれば、さらに詳細なメモリ・チップセット情報を確認できます。

CPU(s)の数が思ったより少ない場合

onlineになっていないCPUが存在する可能性があります。

# オンライン・オフラインのCPU状態を確認 $ lscpu | grep -E "CPU\(s\)|On-line|Off-line" CPU(s): 8 On-line CPU(s) list: 0-6 Off-line CPU(s) list: 7 ← CPU 7がオフラインになっている # 特定CPUをオンラインに戻す(root権限が必要) $ echo 1 | sudo tee /sys/devices/system/cpu/cpu7/online 1

本記事のまとめ

lscpuコマンドはLinuxサーバーのCPU情報を素早く正確に把握するための標準ツールです。
/proc/cpuinfoを手で読み解くより格段に効率的で、スクリプト活用にも向いています。
mount コマンドの使い方systemd-analyze で起動時間計測などのシステム管理コマンドと組み合わせて、サーバー状態の全体像を把握する習慣をつけると現場対応が速くなります。
やりたいこと コマンド
CPU全情報を一覧表示する lscpu
論理CPU数を確認する lscpu | grep "^CPU(s):"
物理コア数を確認する lscpu | grep "^Core(s) per socket"
各CPUのコア・スレッド対応を確認する lscpu -e
アーキテクチャを確認する lscpu | grep "^Architecture"
仮想化基盤の種類を確認する lscpu | grep "Hypervisor"
JSON形式で出力する(スクリプト向け) lscpu --json
CPU数をシェル変数に代入する lscpu | grep "^CPU(s):" | awk '{print $2}'

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。