lscpuコマンドとは?使い方と出力の見方を解説【Linux】

lscpuコマンドとは?使い方と出力の見方を解説【Linux】

PR Amazonのアソシエイトとして、ITナレッジライフは適格販売により収入を得ています。

記事の文字数:5,559

Linuxのlscpuコマンドの使い方を初心者向けに解説します。CPU情報を確認するlscpuの基本から、出力結果の各項目の見方、-eや-pなどの主要オプション、/proc/cpuinfoとの違いまで具体例付きで紹介します。

Linuxユーザにお勧めの本 ↗

最新版

ゼロからはじめるLinuxサーバー構築・運用ガイド 第2版 動かしながら学ぶWebサーバーの作り方

難易度
実用性
最新度

Rocky Linux対応。実際にWebサーバーを公開するまでのプロセスを体験できる、最も確実で実践的なガイドブックです。

初心者向け

わかばちゃんと学ぶ サーバー監視

難易度
実用性
読みやすさ

マンガと図解が中心で圧倒的に読みやすい。負荷調査の手法がスッと理解できるようになります。

新しいLinuxの教科書 第2版

難易度
実用性
読みやすさ

一生モノの基礎知識が身につく定番書です。

ゼロからわかる Linuxコマンド200本ノック―基礎知識と頻出コマンドを無理なく記憶に焼きつけよう!

難易度
実用性
習得度

アウトプット重視で記憶に定着しやすい。反復練習でLinux操作が自由自在になります。

エンジニア1年生のための世界一わかりやすいLinuxコマンドの教科書

難易度
実用性
読みやすさ

サーバーのスペックを確認したい、CPUCPU [シーピーユー]Central Processing Unit。コンピュータの頭脳となる中央演算処理装置のコア数を知りたい、仮想環境かどうか調べたい──LinuxLinux [リナックス / ライナックス]オープンソースのOSカーネルの運用ではCPU情報を確認する場面が頻繁にあります。

そんなときに便利なのが lscpu コマンドです。本記事では、lscpuの基本的な使い方から、出力結果の各項目の意味、実務で役立つオプションまでわかりやすく解説します。

lscpuコマンドとは?概要と基本機能

lscpuは、LinuxシステムにおけるCPUのアーキテクチャ情報を表示するコマンドです。

内部的には /proc/cpuinfo/sys/devices/system/cpu/ などの情報を収集し、CPUのモデル名、コア数、スレッド数、キャッシュサイズ、対応アーキテクチャなどを人間が読みやすい形式で一覧表示してくれます。

lscpuを使うメリットは以下の通りです。

  • CPUのモデル名・コア数・スレッド数を1コマンドで一覧確認できる
  • 仮想化環境のハイパーバイザ情報やNUMAノードの構成もまとめて把握できる
  • /proc/cpuinfo の膨大な出力を読み解く手間なく、整理された情報を素早く取得できる

lscpuコマンドの基本構文と実行方法

構文
lscpu [オプション]

オプションなしで実行すると、システムのCPU情報がサマリー形式で表示されます。

実行コマンド
lscpu

補足:util-linuxのバージョンや実行環境による出力の違いについて

lscpuコマンドの出力結果の見方と各項目の意味

lscpuをオプションなしで端末から実行すると、以下のような出力が得られます(階層形式の例)。

実行結果(例)
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 46 bits physical, 48 bits virtual
CPU(s): 4
On-line CPU(s) list: 0-3
Vendor ID: GenuineIntel
Model name: Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz
CPU family: 6
Model: 79
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
Stepping: 1
CPU MHz: 2300.000
BogoMIPS: 4600.00
Caches (sum of all):
L1d: 64 KiB (2 instances)
L1i: 64 KiB (2 instances)
L2: 512 KiB (2 instances)
L3: 45 MiB (1 instance)
NUMA:
NUMA node(s): 1
NUMA node0 CPU(s): 0-3
Vulnerabilities:
Meltdown: Mitigation; PTI
Spectre v1: Mitigation; usercopy/swapgs barriers
Spectre v2: Mitigation; Retpolines; IBPB

出力される項目は大きく分けて、CPU基本情報物理構成キャッシュNUMA仮想化脆弱性の6つのカテゴリに整理できます。以降のセクションで、それぞれの項目の意味を詳しく解説します。

1. CPU基本情報(アーキテクチャ・モデル名・周波数)

CPUの種類やアーキテクチャに関する基本的な情報です。

項目意味
ArchitectureCPUのアーキテクチャ(例:x86_64aarch64
CPU op-mode(s)CPUがサポートする動作モード(例:32-bit, 64-bit
Byte Orderバイトオーダー(通常はLittle Endian
Address sizes物理・仮想アドレスのビット数
Vendor IDCPUの製造元(GenuineIntel:Intel、AuthenticAMD:AMD)
Model nameCPUのモデル名(型番)
CPU familyCPUファミリー番号
ModelCPUモデル番号
SteppingCPUのリビジョン(ステッピング)
CPU MHzCPUの動作周波数(MHz)
BogoMIPSCPU速度の目安値(性能を正確に示すものではない)

BogoMIPSについて BogoMIPSは「Bogus(偽の)MIPS」の略で、カーネルの起動時にCPUのタイミングループを計測して得られる値です。実際の処理性能を示すベンチマークではなく、カーネル内部のタイマー調整に使われるため、あくまで参考値として捉えてください。

2. CPU物理構成(コア数・ソケット数・スレッド数)

CPU数の算出に直結する重要な項目です。

項目意味
CPU(s)論理CPU(論理プロセッサ)の総数
On-line CPU(s) list現在有効な論理CPUの一覧
Thread(s) per core1コアあたりのスレッド数
Core(s) per socket1ソケット(物理CPU)あたりのコア数
Socket(s)物理CPUソケットの数

従来の対称型プロセッサ(各コアが均一な構成)では、論理CPU数は以下の計算式で求められます。

CPU(s) = Socket(s) × Core(s) per socket × Thread(s) per core

たとえば上記の例では、1ソケット × 2コア × 2スレッド = 4論理CPU です。

注意:最新のハイブリッドCPU(Intel 第12世代以降など)について Intel 第12世代以降(Core i9/i7/i5等)で採用されている P-core(高性能コア)と E-core(高効率コア)を組み合わせた異種混合(ハイブリッド)構成 では、コアごとにスレッド数が異なるため、上記の単純な掛け算(Socket × Core × Thread)は成り立ちません。上記計算式は一般的なサーバー向けプロセッサ(Intel XeonやAMD EPYC)など、対称型コア構成での目安としてご活用ください。

ハイパースレッディングの確認方法 Thread(s) per core2であれば、Intel Hyper-Threading(またはAMD SMT)が有効になっています。1の場合は無効です。

3. CPUキャッシュ情報(L1・L2・L3)

CPUキャッシュの階層ごとの容量が表示されます。

項目意味
L1dL1データキャッシュの合計容量
L1iL1命令キャッシュの合計容量
L2L2キャッシュの合計容量
L3L3キャッシュの合計容量

括弧内の instances は、そのキャッシュがCPU内に何個存在するかを示します。L1とL2はコアごとに1つずつ、L3はソケット(物理CPU)全体で共有されるのが一般的です。

4. NUMAノード情報

項目意味
NUMA node(s)NUMAノードの数
NUMA node0 CPU(s)各NUMAノードに割り当てられた論理CPUの一覧

NUMA(Non-Uniform Memory Access)は、マルチソケット構成のサーバーで使われるメモリアクセスの仕組みです。各CPUソケットに「近い」メモリブロック(NUMAノード)が割り当てられ、アクセス速度が最適化されます。

1ソケットの環境では通常NUMA node(s): 1と表示されます。

5. 仮想化情報(物理サーバーとVMの判別)

仮想環境上でlscpuを実行した場合に表示される項目です。

項目意味
Hypervisor vendorハイパーバイザの種類(例:KVMVMwareXenMicrosoft
Virtualization type仮想化の種類(例:full

物理マシン上で実行した場合、これらの項目は表示されません。この違いを利用して、今いる環境が物理マシンか仮想マシンかを判別できます。

重要:DockerDocker [ドッカー]コンテナ型仮想化プラットフォーム・LXC等の「コンテナ環境」での注意点 Hypervisor vendorVM(ハイパーバイザ型の仮想マシン) を識別するための項目です。 DockerやPodmanなどのコンテナはホストOSのカーネルをそのまま共有して動作するため、物理サーバー上で動くDockerコンテナ内で lscpu を実行しても Hypervisor vendor 行は出力されません(物理環境と同様に見えます)。コンテナ環境かどうかの判別には使えませんのでご注意ください。

6. CPU脆弱性対策の確認(Vulnerabilities)

CPUのハードウェア脆弱性に対する保護状況が表示されます。

表示例意味
Mitigation; …緩和策が適用済み
Not affected該当CPUは影響を受けない
Vulnerable脆弱性の影響を受ける(対策未適用)

Meltdown、Spectre v1/v2 などの著名なCPU脆弱性に対して、カーネルレベルでの対策状況を確認できます。

lscpuコマンドの主要オプションと活用法

-e(—extended):CPU情報を拡張テーブル形式で表示する

-eオプションを使うと、各論理CPUの情報をテーブル形式で一覧表示できます。

実行コマンド
lscpu -e
実行結果(例)
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE
0 0 0 0 0:0:0:0 yes
1 0 0 1 1:1:1:0 yes
2 0 0 0 0:0:0:0 yes
3 0 0 1 1:1:1:0 yes

各論理CPUがどのソケット・コア・NUMAノードに属しているかを一目で把握できます。

特定の列(項目)のみ絞り込んで表示する

-eに続けて列名を指定すると、表示する項目を絞り込めます。

実行コマンド
lscpu -e=cpu,core,socket,online
実行結果(例)
CPU CORE SOCKET ONLINE
0 0 0 yes
1 1 0 yes
2 0 0 yes
3 1 0 yes

-p(—parse):スクリプト解析用(CSV形式)で出力する

-pオプションは、スクリプトで処理しやすいCSVCSV [シーエスブイ]Comma-Separated Values。カンマ区切りのデータ形式形式でCPU情報を出力します。

実行コマンド
lscpu -p
実行結果(例)
# The following is the parsable format, which can be fed to other
# programs. Each different item in every column has an unique ID
# starting usually from zero.
# CPU,Core,Socket,Node,,L1d,L1i,L2,L3
0,0,0,0,,0,0,0,0
1,1,0,0,,1,1,1,0
2,0,0,0,,0,0,0,0
3,1,0,0,,1,1,1,0

#で始まる行はコメントです。シェルスクリプトでCPU数を取得する場合などに便利です。

実行コマンド(論理CPU数をスクリプトで取得する例)
lscpu -p | grep -v '^#' | wc -l

-a(—all):全CPU(オンライン・オフライン)を表示する

-aオプションは、オンライン・オフライン両方のCPUを表示します。

実行コマンド
lscpu -a -e

特定のCPUを意図的にオフラインにしている環境(CPU hotplug)で、全CPUの状態を確認する際に使います。

-b(—online):オンラインのCPUのみ表示する

-bオプションは、現在オンラインのCPUだけを表示します。

実行コマンド
lscpu -b -e

-c(—offline):オフラインのCPUのみ表示する

-cオプションは、オフラインのCPUだけを表示します。

実行コマンド
lscpu -c -e

注意:-a・-b・-c オプションの指定条件について -a--all)、-b--online)、-c--offline)オプションは単独(例: lscpu -a)では実行できません。必ず -e--extended)または -p--parse)オプションと組み合わせて指定する必要があります。

-J(—json):JSON形式で出力する

-Jオプションで、JSONJSON [ジェイソン]JavaScript Object Notation。軽量データ交換フォーマット形式でCPU情報を出力できます。

実行コマンド
lscpu -J
実行結果(例・抜粋)
{
"lscpu": [
{
"field": "Architecture:",
"data": "x86_64"
},
{
"field": "CPU(s):",
"data": "4"
},
{
"field": "Model name:",
"data": "Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz"
}
]
}

他のツールやプログラムとの連携でCPU情報を構造化データとして取得したい場合に便利です。

【実践例】LinuxサーバーのCPUスペックを素早く確認する手順

サーバーにログインした直後にCPUのスペックを把握したい場合、以下のようにポイントを絞って確認するのが効率的です。

ステップ1:CPUモデルとコア数を確認する

行頭パターン ^ やコロンを含めて厳密に grep することで、On-line CPU(s) list:NUMA node0 CPU(s): などの余分な行を拾わずに必要な項目だけを抽出できます。

実行コマンド
lscpu | grep -E "^(Model name|CPU\(s\):|Thread\(s\) per core|Core\(s\) per socket|Socket\(s\))"
実行結果(例)
CPU(s): 4
Model name: Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1

この出力から、CPUのモデル名、物理コア数、論理CPU数、ハイパースレッディングの有無が一目でわかります。

ステップ2:仮想環境(VM)かどうかを確認する

実行コマンド
lscpu | grep "Hypervisor"

出力があればVM(例:Hypervisor vendor: KVM)、出力がなければ物理環境です。

補足: KVMやVMwareなどのハイパーバイザ型仮想マシン(VM)で実行した場合は表示されますが、物理サーバー上で稼働するDockerコンテナ等の内部で実行した場合は表示されません。

ステップ3:キャッシュサイズを確認する

実行コマンド
lscpu | grep "cache"
実行結果(例)
L1d cache: 64 KiB
L1i cache: 64 KiB
L2 cache: 512 KiB
L3 cache: 45 MiB

補足: パイプ経由で grep を実行した場合、自動的にフラット表示に切り替わるため、L1d cache: のように項目名に cache が付加された形式で表示されます。

lscpuコマンドと /proc/cpuinfo の違いと使い分け

CPUの情報を確認する方法として、lscpuのほかに/proc/cpuinfoを直接参照する方法もあります。それぞれの特徴を比較します。

比較項目lscpu/proc/cpuinfo
出力形式構造化されたサマリー論理CPUごとの詳細情報
情報量コア数・ソケット数など全体像を把握しやすいCPUフラグなど個別の詳細情報が豊富
可読性高い(整理されている)低い(出力が長大になりがち)
スクリプト連携-p-Jで対応しやすいgrepで特定項目を抽出
用途スペック確認・構成把握CPUフラグの確認・細かい調査

通常のスペック確認にはlscpuを、CPUの対応命令セット(SSE、AVX など)を詳しく調べたい場合は/proc/cpuinfoを使い分けるのがおすすめです。

CPUフラグの確認例(/proc/cpuinfo)
grep "flags" /proc/cpuinfo | head -1

lscpuコマンドの主要オプション一覧まとめ

オプション説明
(なし)CPU情報のサマリーを表示
-e / --extended拡張テーブル形式で各CPUの情報を表示
-p / --parseスクリプト向けのCSV形式で出力
-a / --allオンライン・オフライン両方のCPUを表示(※ -e または -p と併用)
-b / --onlineオンラインのCPUのみ表示(※ -e または -p と併用)
-c / --offlineオフラインのCPUのみ表示(※ -e または -p と併用)
-J / --jsonJSON形式で出力
-x / --hexCPUリストを16進数のビットマスクで表示
-y / --physical論理IDではなく物理IDを表示

まとめ:lscpuでLinuxのCPU情報を効率的に確認しよう

  • lscpuはCPUのアーキテクチャ情報を整理して表示するコマンド
  • 出力からモデル名・コア数・スレッド数・キャッシュなどを一目で確認できる
  • Thread(s) per core2ならハイパースレッディングが有効
  • Hypervisor vendorの有無で仮想環境かどうかを判別できる
  • -eで拡張テーブル形式、-pでスクリプト向けCSV形式の出力も可能

サーバーにログインした際は、まずlscpuでCPU構成を把握し、必要に応じて/proc/cpuinfoで詳細を確認するのが効率的な調査の流れです。

関連記事 CPUやメモリの使用状況をリアルタイムで確認したい場合は、topコマンドの使い方もあわせて参考にしてください。

【Linux】topコマンドでメモリ・CPU使用率を監視する
ITナレッジライフ

【Linux】topコマンドでメモリ・CPU使用率を監視する

topコマンドを利用すると、CPU使用率・メモリ使用率などリソース情報をプロセスごとに一覧表示し、システム全体の負荷を確認することができます。

CPU・メモリの使用率を数値で確認する方法については、vmstatコマンドの解説記事も参考になります。

【Linux】vmstat・freeコマンドでメモリ使用率・CPU使用率を確認する方法
ITナレッジライフ

【Linux】vmstat・freeコマンドでメモリ使用率・CPU使用率を確認する方法

メモリ使用率はfreeコマンドの総メモリと利用可能なメモリから算出し、CPU使用率はvmstatのアイドル時間から算出します。


以上で本記事の解説を終わります。
よいITライフを!
ITナレッジライフ 運営者
この記事を書いた人

Z (ITナレッジライフ)

現役のITエンジニア。Linux、プログラミング、IT用語など、日々の業務で得た「痒いところに手が届く」技術情報を発信しています。

プロフィールと編集ポリシーを見る

Linuxユーザにお勧めの本 ↗

最新版

ゼロからはじめるLinuxサーバー構築・運用ガイド 第2版 動かしながら学ぶWebサーバーの作り方

難易度
実用性
最新度

Rocky Linux対応。実際にWebサーバーを公開するまでのプロセスを体験できる、最も確実で実践的なガイドブックです。

人気記事


記事を評価

Thanks!
目次
Scroll to Top