freeコマンドによるシステムの空きメモリの表示について

デフォルトの表示はkbyte単位 -m メガバイト単位で表示する

# free -m
             total       used       free     shared    buffers     cached
Mem:          1005         73        931         24          0         42
-/+ buffers/cache:         30        974
Swap:            0          0          0
buffers  ファイルのメタデータのキャッシュ
cached   ファイル本体のキャッシュ

メモリのFreeは本当に余っている(死蔵している)領域。

死蔵しているともったいないので buffers+cached として利用分が増えていく。 この分は空き容量と考えることもできるので、

used - (buffers+cached) が実際に使っているメモリ量
free + (buffers+cached) が実際に空いているメモリ量

つまり free は2行目を見て判断する事。この例では

used       free  (単位は Mbyte)
  30        974

と判断する

追伸

busybox の free だと cached を計算してくれないのでfreeサイズが小さく見えてしまうようです。

# busybox free -m
             total         used         free       shared      buffers
Mem:          1005           73          931            0            0
-/+ buffers:                 72          932
Swap:            0            0            0

関連

自動リンク