Linux > コマンド > free

メモリ、バッファおよびキャッシュの使用状況を表示する

free は 物理メモリ、スワップメモリ、バッファおよびキャッシュの使用状況を表示するコマンド。

  • デフォルトはキロバイト単位の表示 [-k]

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
ラベル説明totalusedfreebufferscached
1Mem:物理メモリ全量現在使用中のメモリ
(バッファ、キャッシュ含む)
未使用状態なメモリバッファ・サイズキャッシュ・サイズ
2(Mem)
-/+ buffers/cache:
整理したときの
物理メモリ
-現在使用中のメモリ
-(buffers+cached)
未使用状態なメモリ
+(buffers+cached)
--
3Swap:スワップスワップの大きさ使用中のサイズ未使用サイズ--
free

shared は共有メモリであるが現在は表示項目として機能していない。(互換用に残しているだけ?)

乱暴な表現になるが 1行目の 「free メモリサイズ」 は完全に手持ち無沙汰な状態のメモリ
2行目の 「free メモリサイズ」 は仕事はしてるがイザとなれば駆けつけてくれる状態なメモリ

buffers + cached / バッファとキャッシュ

buffers+cached はカーネルが使用しているバッファとキャッシュ。
バッファはデバイスにアクセスするための作業用メモリ。キャッシュは高速化するのための索引付きのデータの一時保管場所と言い換えることができる。

これらの「使用済メモリ」は OS が使用できるメモリが枯渇したり、整理が必要にならない限り積極的に解放されない。
例えばメモリの断片化で連続領域が確保できなくなれば解放される。

 ⇒ inode cache、dentry とページ・キャッシュを手動で解放する



関連 /proc ファイル

  • /proc/meminfo

freeの関連トピックス

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle のライセンスがわからない…
Oracle Direct (ネットで聞いても最後はここで要確認)