Linux / コマンド / lscpu - CPUのアーキテクチャとコア情報を確認

lscpuは、Linuxが認識したCPUのアーキテクチャ、論理CPU数、コア・ソケット構成、キャッシュ情報を表示します。サーバーの容量や仮想化環境を把握する際の出発点となります。

情報は主にsysfsや/proc/cpuinfoなどから収集されます。CPU(s)はOSに見える論理CPU数であり、物理コア数と同じとは限りません。仮想マシンでは通常、ゲストに提供された構成情報になるため、ホストハードウェアの仕様と区別する必要があります。

基本的な文法

lscpu [オプション]

インストールされている実装とオプションは、配布版によって異なる場合があります。man lscpuで現在のシステムの説明を確認してください。

使用例

CPU概要の確認

アーキテクチャ、論理CPU、ソケット、コアを合わせて確認します。

lscpu

CPUごとのリスト表示

lscpu -eはCPUごとの表を表示し、既定ではオンラインとオフラインのCPUを含みます。ONLINEなどの列で状態を確認します。表示列を固定する場合は、対応列をlscpu --helpで確認してから、例えばlscpu -e=CPU,CORE,SOCKET,ONLINEと指定します。

lscpu -e

キャッシュ情報の確認

キャッシュ階層とサイズの詳細を確認します。複数CPUで共有されるキャッシュもあるため、表示サイズを単純に論理CPU数倍しないでください。古いutil-linuxと現在の実装では集計方法が異なる場合があります。

lscpu -C

論理CPUと物理コアを区別する

lscpuは、カーネルが認識したCPUアーキテクチャと論理CPU数、ソケット・コア・スレッド構成を要約します。

lscpu | head -n 8

例示出力の一部(項目名と値は環境により異なります):

Architecture:        x86_64
CPU(s):              8
Thread(s) per core:  2
Core(s) per socket:  4

この例は論理CPUが8個、1コア当たり2スレッド、1ソケット当たり4コアと報告された場合を示します。1ソケットで全コアがオンラインという条件なら4コアに対応しますが、この抜粋だけで実機の物理コア数を断定しないでください。仮想マシンではゲスト向けの構成情報です。コンテナではホストのCPU情報が見えても、実際に使用できるCPUやCPU時間が別に制限される場合があります。現在の使用率はtopによるプロセスとCPU使用率の確認と合わせて判断します。

主なオプションと形式

オプション・形式 説明
-e CPUごとの詳細情報を表示します。
-p 解析向けの形式で表示します。既定ではオンラインCPUのみを含み、オフラインも含めるときは-aを併用します。
-C キャッシュ情報を表示します。
-a オンライン・オフラインCPUを含みます。-eまたは-pと一緒に使用します。
-J サポートされているバージョンではJSON形式で表示します。

使用する際の注意点

コンテナや仮想マシンで表示されるCPU構成は、割り当て量やホストの実際のリソースと異なる場合があります。デフォルトの出力フィールドや並び順はutil-linuxのバージョンによって変わることがあるため、スクリプトでは明示的に列を選択してください。CPU数だけで性能を判断しないでください。

よくある質問

lscpuのCPU(s)は物理コア数ですか?

いいえ。OSに表示されている論理CPU数です。コア・ソケット・スレッドの項目を一緒に読む必要があります。

公式ドキュメント

オプションの正確な動作と実装ごとの違いは、lscpuに関する公式ドキュメントで確認できます。