Linux豆知識 199

「/proc/meminfo」ファイル

このエントリーをはてなブックマークに追加
今回は、「/proc/meminfo」ファイルについて。

前回取り上げた「/proc/cpuinfo」がCPUの情報が格納されていたファイルであるように、「/proc/meminfo」ファイルにはメモリーの情報が格納されています。得られる情報も多岐に渡ります。catコマンドで内容を参照してみましょう。

---
$ cat /proc/meminfo
MemTotal:        3933132 kB
MemFree:         1421704 kB
MemAvailable:    2155944 kB
Buffers:          108552 kB
Cached:          1097568 kB
(略)
---

「MemTotal」はその名の通り搭載しているメモリの総量、「MemFree」は空きメモリ量、「MemAvailable」はキャッシュなどを解放することで利用可能なメモリ量、「Buffers」はバッファのサイズ、「Cached」はキャッシュのサイズ・・・と、ぱっと見はわかりやすいですね。しかし、よく見ると気づくことがあります。たとえばですが、「MemFree」の値と、さまざまなプロセスで使われているメモリの量を足してみても、MemTotalの値にならないというようなことがことがよくあるのです。Linuxにおけるメモリの扱いはかなりややこしいので、一見すると「あれ、あの値とこの値を足しても計算が合わないぞ」となることがよくあります。

知っておくとよいことは「キャッシュ」として使われているメモリ領域と「Anonymous」として使われるメモリ領域、そしてカーネルが利用するメモリがあるということです。

「キャッシュ」として使われるメモリは、以下の項目に表示されます。
Active(file):     502556 kB
Inactive(file):   380956 kB

「Anonymous」として使われるメモリは以下の項目に表示されます。
Active(anon):    1086880 kB
Inactive(anon):   316996 kB

「キャッシュ」と「Anonymous」は、簡単に言えば「キャッシュ」は必要に応じてデータをディスクに書き出すことで開放できるタイプのメモリ領域、「Anonymous」はそれができない(開放する場合はSwapに書き出す必要がある)タイプのメモリ領域だと思うとよいです。

簡単なようでいてかなり奥が深く、詳しく学ぶとそれなりに時間がかかる分野ですので、Linuxの理解が深まってから詳しいことを勉強してみるとよいと思います。

ページトップへ