Top > Linux > コマンド > free
メモリ、バッファおよびキャッシュの使用状況を表示する
free は 物理メモリ、スワップメモリ、バッファおよびキャッシュの使用状況を表示するコマンド。
free コマンド
free(1) - Display amount of free and used memory in the system
free コマンドの構文
free [-b|-k|-m|-g] [-l] [-o] [-t] [[-s delay] [-c count]] [-V]
使用できるオプションは以下のとおり
- -b : バイト単位の表記
- -k : キロバイト単位の表記
- -m : メガバイト単位の表記
- -g : ギガバイト単位の表記
- -l : low address と high address(※) 行の表示
- -o : 旧形式による表示(-/+buffers/cache の行が無い)
- -t : トータル行の表示
- -s -c : 一定間隔スリープして表示の繰り返し / - s 待機秒 -c 繰り返し回数
(※) 64 ビットなら気にしなくていい。カーネル版(ソフトウェア由来)のコンベンショナル・メモリ設定みたいなもの。
free コマンド出力の見方
説明と見やすいようにカンマ編集してあります。
# free
total used free shared buffers cached
Mem: 2,000,000 800,000 1,200,000 0 150,000 300,000
-/+ buffers/cache: 350,000 1,650,000
Swap: 3,000,000 50 2,999,950
行 | ラベル | 説明 | total | used | free | buffers | cached |
1 | Mem: | 物理メモリ | 全量 | 現在使用中のメモリ (バッファ、キャッシュ含む) | 未使用状態なメモリ | バッファ・サイズ | キャッシュ・サイズ |
2 | (Mem) -/+ buffers/cache: | 整理したときの 物理メモリ | - | 現在使用中のメモリ -(buffers+cached) | 未使用状態なメモリ +(buffers+cached) | - | - |
3 | Swap: | スワップ | スワップの大きさ | 使用中のサイズ | 未使用サイズ | - | - |
|
shared は共有メモリであるが現在は表示項目として機能していない。(互換用に残しているだけ?)
乱暴な表現になるが 1行目の 「free メモリサイズ」 は完全に手持ち無沙汰な状態のメモリ
2行目の 「free メモリサイズ」 は仕事はしてるがイザとなれば駆けつけてくれる状態なメモリ
buffers + cached / バッファとキャッシュ
buffers+cached はカーネルが使用しているバッファとキャッシュ。
バッファはデバイスにアクセスするための作業用メモリ。キャッシュは高速化するのための索引付きのデータの一時保管場所と言い換えることができる。
これらの「使用済メモリ」は OS が使用できるメモリが枯渇したり、整理が必要にならない限り積極的に解放されない。
例えばメモリの断片化で連続領域が確保できなくなれば解放される。
⇒ inode cache、dentry とページ・キャッシュを手動で解放する
関連 /proc ファイル