Categories: linux

Linuxのメモリ状況を詳しく確認する方法:cat /proc/meminfo の見方と活用法

Linuxでシステムのメモリ状況を確認する際、「free コマンド」や「top コマンド」がよく使われますが、より詳細で正確な情報を取得したいときに役立つのが cat /proc/meminfo です。

このコマンドは、カーネルが保持しているメモリに関するリアルタイムの情報を表示し、物理メモリの使用状況やキャッシュの状態、スワップ領域などを具体的に把握できます。この記事では、/proc/meminfo の出力内容をひとつひとつ解説しながら、実際にどのように読み解くか、またトラブルシューティングやパフォーマンス改善にどう活かすかを詳しく紹介していきます。


/proc/meminfoとは何か

/proc/meminfo は、Linuxカーネルが管理する仮想ファイルの1つで、メモリに関する統計情報が格納されています。このファイルは実際のディスクファイルではなく、カーネルからリアルタイムで生成されており、常に最新のメモリ状態を表示します。

このファイルを表示するには以下のようなシンプルなコマンドを実行します。

cat /proc/meminfo

出力は非常に詳細で、1行ごとに異なるメモリ項目とその使用量(kB単位)が表示されます。これにより、システムのメモリが「どのように使われているか」を正確に知ることができます。


出力内容の読み方

/proc/meminfo を実行すると、多くの行が表示されます。主な項目の意味を以下に説明します。

MemTotal

MemTotal:       16384000 kB

システムに搭載されている物理メモリの総量です。単位はキロバイト(kB)で、上記の例では約16GBとなります。

MemFree

MemFree:         1234567 kB

完全に使用されていないメモリの量を示します。つまり、何もキャッシュにも使われておらず、すぐに使用できるメモリです。

Buffers と Cached

Buffers:          123456 kB  
Cached: 2345678 kB
  • Buffers:ブロックデバイス(ディスク)に対する書き込みを一時的に保存しているバッファです。
  • Cached:ファイルの内容をキャッシュとして保持しているメモリ領域です。これらは必要に応じて解放され、他の用途に再利用されるため、厳密には「消費済み」とは限りません。

SwapTotal と SwapFree

SwapTotal:       2097148 kB  
SwapFree: 1048576 kB

スワップ領域の総量と、未使用のスワップ領域です。スワップは、物理メモリが足りない場合にディスク上に退避させる仕組みですが、頻繁に使用されているとパフォーマンスが低下するため注意が必要です。


実際に役立つ読み方のコツ

メモリの実際の使用状況を正確に把握するには、「MemFree」だけでは不十分です。Linuxでは未使用メモリをキャッシュとして積極的に活用しているため、以下の計算が重要です。

実質的な空きメモリ = MemFree + Buffers + Cached

この合計を出すことで、システムが再利用可能なメモリ量を知ることができます。たとえば、次のような出力がある場合:

MemFree:        500000 kB  
Buffers: 200000 kB
Cached: 1000000 kB

→ 実質的な空きメモリは 1,700,000 kB(約1.7GB)ということになります。


/proc/meminfo を使ったトラブルシューティング

メモリ不足によるシステム不調の原因を調査する際にも /proc/meminfo は非常に有効です。

例1:スワップ使用量が急増している

スワップの使用量(SwapTotal – SwapFree)が多い場合、物理メモリが足りておらず、ディスクI/Oの増加が原因で処理が遅れている可能性があります。この場合は、不要なサービスを停止したり、メモリを増設することが必要です。

例2:Cachedが異常に多い

ファイルシステムのキャッシュが増えすぎている場合、一時的にフラッシュすることで解決できる場合があります。次のコマンドでキャッシュのクリアが可能です。

sync; echo 3 > /proc/sys/vm/drop_caches

ただし、これは応急処置であり、常時実行すべきではありません。


他のコマンドとの併用

/proc/meminfo 単体でも有用ですが、以下のコマンドと併用することで、より深い分析が可能になります。

free -m

メモリの概要をMB単位で確認できます。キャッシュやスワップも一目でわかるため、日常的な確認にはこちらが便利です。

free -m

vmstat

システムの仮想メモリ状況やプロセス、CPUの状態などを総合的に確認できます。監視やパフォーマンス分析に有効です。

vmstat 1 5

/proc/meminfo をスクリプトで活用する

シェルスクリプトから /proc/meminfo を読み取ることで、自動監視やアラート設定も可能です。たとえば、空きメモリが少ない場合に通知を飛ばす例:

#!/bin/bash
free_mem=$(grep MemFree /proc/meminfo | awk '{print $2}')
if [ "$free_mem" -lt 200000 ]; then
echo "メモリ不足の可能性あり" | mail -s "Memory Alert" you@example.com
fi

このように、監視ツールを自作する際にも非常に役立ちます。


まとめ

cat /proc/meminfo は、Linuxシステムのメモリ使用状況を詳細に把握するための強力なツールです。表示される情報は多岐にわたりますが、それぞれの項目の意味を理解することで、メモリ不足の兆候を早期に察知したり、適切な対処を講じることができます。

単なるメモリ使用量の確認だけでなく、キャッシュやスワップの状態を通じてシステム全体の健全性を評価できるこのコマンド。Linuxユーザーにとっては、ぜひ知っておきたい基礎知識のひとつと言えるでしょう。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。

Recent Posts

C#でテキストファイルに書き込む方法を徹底解説!

プログラムからテキストファイル…

15時間 ago

比例と反比例を完全マスター!中学生にもわかる関数の基礎入門

数学の世界において「比例」と「…

15時間 ago

中学生でもわかる!一次方程式の解き方を丁寧に解説

数学の中でも「方程式」は、避け…

15時間 ago