サーバーのスペックを確認したい、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のバージョンや実行環境による出力の違いについて
- 端末(TTY)とパイプ接続での出力形式切り替え: 近年の
lscpuは、端末で直接実行した場合は階層形式(Caches (sum of all):の下にL1d:がインデント表示される形式)になりますが、lscpu | grep ...のようにパイプやリダイレクトに繋ぐと自動的にフラット形式(L1d cache: 64 KiBのように項目名にcachecache [キャッシュ]データを一時的に保存しアクセスを高速化する仕組みが付く形式)に切り替わります。- ディストリビューション・バージョン差: 古いOSOS [オーエス]Operating System。基本ソフトウェア(RHEL 8以前やUbuntuUbuntu [ウブントゥ]人気のLinuxディストリビューション 20.04以前など、
util-linux2.37未満)では階層表示に対応しておらず、常にフラット表示になります。また、CPU MHz:などの一部項目はOSやバージョンによって表示・非表示が異なる場合があります。
lscpuコマンドの出力結果の見方と各項目の意味
lscpuをオプションなしで端末から実行すると、以下のような出力が得られます(階層形式の例)。
Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little EndianAddress sizes: 46 bits physical, 48 bits virtualCPU(s): 4 On-line CPU(s) list: 0-3Vendor 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.00Caches (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-3Vulnerabilities: Meltdown: Mitigation; PTI Spectre v1: Mitigation; usercopy/swapgs barriers Spectre v2: Mitigation; Retpolines; IBPB出力される項目は大きく分けて、CPU基本情報、物理構成、キャッシュ、NUMA、仮想化、脆弱性の6つのカテゴリに整理できます。以降のセクションで、それぞれの項目の意味を詳しく解説します。
1. CPU基本情報(アーキテクチャ・モデル名・周波数)
CPUの種類やアーキテクチャに関する基本的な情報です。
| 項目 | 意味 |
|---|---|
| Architecture | CPUのアーキテクチャ(例:x86_64、aarch64) |
| CPU op-mode(s) | CPUがサポートする動作モード(例:32-bit, 64-bit) |
| Byte Order | バイトオーダー(通常はLittle Endian) |
| Address sizes | 物理・仮想アドレスのビット数 |
| Vendor ID | CPUの製造元(GenuineIntel:Intel、AuthenticAMD:AMD) |
| Model name | CPUのモデル名(型番) |
| CPU family | CPUファミリー番号 |
| Model | CPUモデル番号 |
| Stepping | CPUのリビジョン(ステッピング) |
| CPU MHz | CPUの動作周波数(MHz) |
| BogoMIPS | CPU速度の目安値(性能を正確に示すものではない) |
BogoMIPSについて BogoMIPSは「Bogus(偽の)MIPS」の略で、カーネルの起動時にCPUのタイミングループを計測して得られる値です。実際の処理性能を示すベンチマークではなく、カーネル内部のタイマー調整に使われるため、あくまで参考値として捉えてください。
2. CPU物理構成(コア数・ソケット数・スレッド数)
CPU数の算出に直結する重要な項目です。
| 項目 | 意味 |
|---|---|
| CPU(s) | 論理CPU(論理プロセッサ)の総数 |
| On-line CPU(s) list | 現在有効な論理CPUの一覧 |
| Thread(s) per core | 1コアあたりのスレッド数 |
| Core(s) per socket | 1ソケット(物理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 coreが2であれば、Intel Hyper-Threading(またはAMD SMT)が有効になっています。1の場合は無効です。
3. CPUキャッシュ情報(L1・L2・L3)
CPUキャッシュの階層ごとの容量が表示されます。
| 項目 | 意味 |
|---|---|
| L1d | L1データキャッシュの合計容量 |
| L1i | L1命令キャッシュの合計容量 |
| L2 | L2キャッシュの合計容量 |
| L3 | L3キャッシュの合計容量 |
括弧内の 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 | ハイパーバイザの種類(例:KVM、VMware、Xen、Microsoft) |
| Virtualization type | 仮想化の種類(例:full) |
物理マシン上で実行した場合、これらの項目は表示されません。この違いを利用して、今いる環境が物理マシンか仮想マシンかを判別できます。
重要:DockerDocker [ドッカー]コンテナ型仮想化プラットフォーム・LXC等の「コンテナ環境」での注意点
Hypervisor vendorは VM(ハイパーバイザ型の仮想マシン) を識別するための項目です。 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 -eCPU 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,onlineCPU 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,L30,0,0,0,,0,0,0,01,1,0,0,,1,1,1,02,0,0,0,,0,0,0,03,1,0,0,,1,1,1,0#で始まる行はコメントです。シェルスクリプトで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): 4Model name: Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHzThread(s) per core: 2Core(s) per socket: 2Socket(s): 1この出力から、CPUのモデル名、物理コア数、論理CPU数、ハイパースレッディングの有無が一目でわかります。
ステップ2:仮想環境(VM)かどうかを確認する
lscpu | grep "Hypervisor"出力があればVM(例:Hypervisor vendor: KVM)、出力がなければ物理環境です。
補足: KVMやVMwareなどのハイパーバイザ型仮想マシン(VM)で実行した場合は表示されますが、物理サーバー上で稼働するDockerコンテナ等の内部で実行した場合は表示されません。
ステップ3:キャッシュサイズを確認する
lscpu | grep "cache"L1d cache: 64 KiBL1i cache: 64 KiBL2 cache: 512 KiBL3 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を使い分けるのがおすすめです。
grep "flags" /proc/cpuinfo | head -1lscpuコマンドの主要オプション一覧まとめ
| オプション | 説明 |
|---|---|
| (なし) | CPU情報のサマリーを表示 |
-e / --extended | 拡張テーブル形式で各CPUの情報を表示 |
-p / --parse | スクリプト向けのCSV形式で出力 |
-a / --all | オンライン・オフライン両方のCPUを表示(※ -e または -p と併用) |
-b / --online | オンラインのCPUのみ表示(※ -e または -p と併用) |
-c / --offline | オフラインのCPUのみ表示(※ -e または -p と併用) |
-J / --json | JSON形式で出力 |
-x / --hex | CPUリストを16進数のビットマスクで表示 |
-y / --physical | 論理IDではなく物理IDを表示 |
まとめ:lscpuでLinuxのCPU情報を効率的に確認しよう
lscpuはCPUのアーキテクチャ情報を整理して表示するコマンド- 出力からモデル名・コア数・スレッド数・キャッシュなどを一目で確認できる
Thread(s) per coreが2ならハイパースレッディングが有効Hypervisor vendorの有無で仮想環境かどうかを判別できる-eで拡張テーブル形式、-pでスクリプト向けCSV形式の出力も可能
サーバーにログインした際は、まずlscpuでCPU構成を把握し、必要に応じて/proc/cpuinfoで詳細を確認するのが効率的な調査の流れです。
関連記事 CPUやメモリの使用状況をリアルタイムで確認したい場合は、
topコマンドの使い方もあわせて参考にしてください。ITナレッジライフ【Linux】topコマンドでメモリ・CPU使用率を監視する
topコマンドを利用すると、CPU使用率・メモリ使用率などリソース情報をプロセスごとに一覧表示し、システム全体の負荷を確認することができます。
CPU・メモリの使用率を数値で確認する方法については、
vmstatコマンドの解説記事も参考になります。ITナレッジライフ【Linux】vmstat・freeコマンドでメモリ使用率・CPU使用率を確認する方法
メモリ使用率はfreeコマンドの総メモリと利用可能なメモリから算出し、CPU使用率はvmstatのアイドル時間から算出します。
以上で本記事の解説を終わります。
よいITライフを!
人気記事
- 1
- 2
- 3
- 4
- 5


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