Linuxの/proc/cpuinfoとは?CPU情報を確認する方法を初心者向けに徹底解説!
生徒
「自分の使っているLinuxマシンのCPU(シーピーユー)の性能を詳しく知りたいのですが、どこを見ればいいのでしょうか?」
先生
「それなら/proc/cpuinfoというファイルを確認するのが一番確実ですよ。ここにはプロセッサの型番やコア数など、重要な情報がすべて詰まっています。」
生徒
「ファイルの中身を見るだけですか?コマンドで設定を変えたりする必要はないんでしょうか?」
先生
「はい、基本的には内容を表示して読むだけです。難しくないので、一緒に中身を確認してみましょう!」
Linuxを初めて学ぶ人や、 OS・プロセス・メモリ管理・仮想マシン・コンテナの仕組みを図解で理解したい人におすすめの定番書籍です。
試して理解 Linuxのしくみを見る※ Amazonアソシエイト広告リンク
1. /proc/cpuinfoとは?プロセッサ情報の宝庫
/proc/cpuinfo(読み方:プロック・シーピーユーインフォ)は、Linux(リナックス)システムが認識しているCPU(シーピーユー)に関する詳細な情報を格納している特別なファイルです。CPUは、コンピュータにおける「頭脳」の役割を果たす中央演算処理装置(チュウオウエンサンショリソウチ)のことですね。
Linuxには「すべてはファイルである」という設計思想があり、ハードウェアの情報もファイルとして扱われます。このファイルを確認することで、CPUのモデル名、クロック周波数(クロックシュウハスウ)、キャッシュサイズ、コア数といったスペックを詳しく知ることができます。自作PCの性能を確認したり、サーバーの構築時にリソースを把握したりする際に非常に重宝します。
2. catコマンドで/proc/cpuinfoの中身を表示する
まずは、最も標準的な方法で中身を見てみましょう。Linuxのファイルの中身を表示するにはcat(キャット)コマンドを使用します。このファイルはテキスト形式なので、誰でも簡単に読み取ることができます。一般ユーザーの権限で問題なく実行可能です。
ターミナルを開いて、以下のコマンドを入力してみてください。画面にズラズラとCPUの情報が表示されるはずです。もしCPUが複数搭載されていたり、マルチコアだったりする場合は、同じような項目が繰り返し表示されます。
cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 158
model name : Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
stepping : 10
microcode : 0xca
cpu MHz : 3192.000
cache size : 12288 KB
このように、モデル名や周波数が一目でわかりますね。家庭用のパソコンであれば、Intel(インテル)やAMD(エーエムディー)といった有名なメーカー名が表示されることが多いでしょう。
3. 表示される項目の意味を詳しく解説
表示された内容には、初心者の方には少し難しい専門用語が並んでいます。ここでは、特に重要でよく参照される項目について、分かりやすく解説します。
- processor(プロセッサ): システムが認識している論理プロセッサの番号です。0から始まります。
- vendor_id(ベンダーアイディー): CPUの製造メーカーです。「GenuineIntel」ならIntel製、「AuthenticAMD」ならAMD製です。
- model name(モデルネーム): CPUの具体的な型番です。例えば「Core i5」や「Ryzen 5」などの名称が表示されます。
- cpu MHz(シーピーユー・メガヘルツ): 現在の動作周波数です。数値が高いほど、1秒間に処理できる計算量が多くなります。
- cache size(キャッシュサイズ): CPU内部にある高速なメモリ、主記憶装置(シュキオクソウチ)とのやり取りを助ける一時保存領域の容量です。
- cpu cores(シーピーユー・コアズ): 1つの物理的なCPUチップの中に、実際に計算を行う「核」がいくつあるかを示します。
これらを知ることで、自分の使っているパソコンがどれくらいの計算能力を持っているのか、重い作業に耐えられるのかを判断する基準になります。いわば、健康診断の結果表のようなものですね。
4. grepコマンドで特定の情報だけを抜き出す
/proc/cpuinfoは情報量が非常に多いため、特定の項目だけを知りたいときにはgrep(グレップ)という便利なコマンドを使います。例えば、CPUのモデル名だけを調べたい場合は、パイプ記号を使って情報を絞り込みます。
以下の例では、ファイル全体を表示するのではなく、「model name」という文字列が含まれる行だけを抽出しています。これにより、画面をスクロールして探す手間が省けます。
grep "model name" /proc/cpuinfo
model name : Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
model name : Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
model name : Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
このように、同じ名前が複数表示されることがあります。これは、CPUに複数のコア(脳みそ)があるため、Linuxがそれぞれのコアを個別に認識しているからです。表示された行数を数えれば、論理プロセッサ数がわかりますね。
5. CPUの個数やコア数をカウントする方法
サーバーを管理していると「このマシンには合計でいくつのCPUがあるのか?」を知りたい場面がよくあります。手動で数えるのは大変なので、先ほどのgrepコマンドに「行数を数える」オプションである-c(シー)を組み合わせてみましょう。
この方法は、OS(オペレーティングシステム)から見た合計のプロセッサ数を瞬時に把握するのに最適です。ITエンジニアの間でも頻繁に使われるテクニックです。
grep -c "processor" /proc/cpuinfo
12
上記の実行結果で「12」と表示されれば、そのマシンには12個の論理プロセッサが存在することを示しています。最近のCPUは「ハイパースレッディング」という技術を使って、1つの物理コアを2つのように見せかけることができるため、実際の部品の数よりも多い数字が出ることが一般的です。
6. 特殊な仮想ファイルシステム「proc」の仕組み
ここで少し雑学を紹介しましょう。この/proc/cpuinfoがある/proc(プロック)ディレクトリは、実はハードディスクの中に実体があるわけではありません。これは「仮想ファイルシステム」と呼ばれる仕組みで、メモリ上に一時的に作られているものです。
Linuxカーネル(リナックスの心臓部)が、現在のシステムの状況をユーザーに教えるために、ファイルという「窓口」を用意してくれているイメージです。そのため、パソコンの電源を切ればこのファイルの中身も消えますし、逆にCPUを交換したり設定を変えたりすれば、再起動後に中身が自動的に書き換わります。情報を取得するたびにカーネルが最新のデータを生成してくれているのです。
7. 他のコマンドとの違い(lscpuとの使い分け)
CPU情報を確認する手段は、他にもいくつかあります。代表的なものがlscpu(エルエスシーピーユー)コマンドです。/proc/cpuinfoは生データに近い詳細な情報を提供しますが、lscpuは人間が見やすいように要約して表示してくれます。
初心者のうちは、ざっくりとしたスペックを知りたいときはlscpuを使い、フラグ(機能)や特定のプロセッサごとの挙動まで詳しく追いたいときは/proc/cpuinfoを直接覗く、という使い分けがおすすめです。用途に合わせて使い分けるのがLinuxマスターへの近道です。
lscpu | head -n 10
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 39 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 12
On-line CPU(s) list: 0-11
Vendor ID: GenuineIntel
Model name: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
CPU family: 6
Model: 158
head(ヘッド)コマンドを繋げることで、最初の10行だけを表示しています。アーキテクチャ(基本構造)などが綺麗に整理されていますね。
8. 物理CPU数とコア数を見分ける応用テクニック
最後に、より実践的な活用例を紹介します。CPUのパッケージ(物理的なチップ)がいくつ載っているかを知るには、「physical id」という項目を確認します。一般のノートパソコンやデスクトップPCは通常1つですが、高性能なサーバー機では2つ以上の物理CPUを搭載していることがあります。
この情報をユニーク(重複なし)で数えることで、ソケット数を確認できます。これはライセンス料の計算などで重要になる知識です。初心者の方も、こういう見方があるんだなと覚えておくと将来役立ちますよ。
grep "physical id" /proc/cpuinfo | sort -u | wc -l
1
このコマンドは、「physical id」を探し、重複を除去(sort -u)して、その行数をカウント(wc -l)するという3つの工程を一度に行っています。Linuxのコマンドを組み合わせる強力さがよくわかりますね。
LPICレベル1の合格を目指している人や、 Linuxコマンド・シェル・ネットワーク・セキュリティの試験対策を効率よく進めたい人におすすめの定番問題集です。
Linux教科書 LPICレベル1 スピードマスター問題集を見る※ Amazonアソシエイト広告リンク
まとめ
今回の記事では、Linux(リナックス)システムにおける心臓部、CPU(シーピーユー)の情報を詳しく確認するための「/proc/cpuinfo」について徹底的に解説してきました。普段何気なく使用しているコンピュータやサーバーですが、その内部でどのようなスペックのプロセッサが動作しているのかを知ることは、システム管理やプログラミング、トラブルシューティングにおいて非常に重要なスキルとなります。
リナックスにおける情報の宝庫 /proc ディレクトリ
Linuxの大きな特徴の一つに「仮想ファイルシステム」があります。今回学んだ /proc/cpuinfo は、ハードディスク上に保存されている通常のファイルではなく、カーネルがメモリ上に展開している現在のシステムの「生の情報」です。そのため、コマンド一つで、物理的なCPUの型番から、動作周波数(メガヘルツ)、キャッシュ容量、さらには実装されている高度な機能(フラグ)までを瞬時に読み取ることができるのです。
エンジニアが現場で使うコマンドの組み合わせ
単に cat コマンドで中身を眺めるだけでなく、実務では grep(グレップ)や wc(ダブリューシー)、sort(ソート)といった他のLinuxコマンドと組み合わせることが一般的です。これにより、膨大なテキスト情報の中から、必要なプロセッサ数やコア数だけをスマートに抽出することが可能になります。
例えば、システム全体の論理プロセッサ数を把握したい場合、次のようなワンライナー(一行のコマンド)がよく使われます。
# システムが認識している論理プロセッサの総数を確認する
grep -c "processor" /proc/cpuinfo
また、特定のハードウェア情報をプログラムから取得したい場合、シェルスクリプトやPython(パイソン)などの言語でこのファイルを読み込む処理を書くこともあります。基本を知っておくことで、自動化の幅も大きく広がります。
スペック確認の重要性とその後のステップ
CPUの情報を正しく理解することは、適切なリソース配分やコスト管理にも直結します。クラウド環境や仮想化技術(DockerやVMwareなど)が普及した現代においても、土台となる物理サーバーや仮想インスタンスのCPU性能を把握することは、アプリケーションのパフォーマンスを最適化する第一歩です。
この記事を通して、/proc/cpuinfo の読み方をマスターした皆さんは、もうLinuxの初心者から一歩抜け出し、中級者への道を歩み始めています。今後は top コマンドや vmstat コマンドなども併用して、CPUが「どのようなスペックか」だけでなく「現在どのように使われているか(使用率)」についても学習を進めてみるとよいでしょう。
生徒
「先生、ありがとうございました!/proc/cpuinfoの中身を見るだけで、自分のパソコンの脳みその正体が丸裸になるんですね。仮想ファイルシステムという仕組みも、なんだか魔法みたいで面白いです。」
先生
「そうですね。Linuxはこうして『ファイル』という形を通して、ハードウェアの状態を教えてくれるのが面白いところです。実際にコマンドを叩いてみて、自分のマシンのコア数はいくつでしたか?」
生徒
「ええと、grep -c "processor" で確認したら、結果が『16』でした!これって、16個も頭脳があるってことですよね?すごく強そうです!」
先生
「それは頼もしいスペックですね!ただし、それは『論理プロセッサ数』かもしれません。ハイパースレッディング技術で1つのコアが2つに見えている場合もあるので、cpu cores の項目と比較してみると、物理的な構造がもっと詳しくわかりますよ。」
生徒
「なるほど。ただ数字を見るだけじゃなくて、各項目の意味を組み合わせるのが大事なんですね。grepコマンドも便利だったので、他のファイルでも試してみたいです。」
先生
「その意気です!例えばメモリの情報なら /proc/meminfo というファイルもあります。Linuxには今回学んだ手法が通用する場所がたくさんありますから、どんどん探索してみてくださいね。基礎を固めれば、サーバー構築やインフラエンジニアの仕事もきっと楽しくなりますよ。」
生徒
「はい!メモリの方も確認してみます。コマンド操作が少しずつ楽しくなってきました。これからもLinuxマスターを目指して頑張ります!」