読者です 読者をやめる 読者になる 読者になる

理系学生日記

おまえはいつまで学生気分なのか

忍者TOOLS

free コマンドで出力されるメモリ使用量

簡単に現在のメモリ使用量を確認するコマンドとして free がありますが、free コマンドで出力される Mem-free が少ないからといってパニックに陥る必要はありません。
Mem-free は、その時点でメモリに乗っているバッファキャッシュやページキャッシュの領域を使用済み領域として扱ってしまいます。Linux では、新たな I/O 要求等によってメモリが必要にならない限りはメモリを開放しません(要出典)。結果として、free コマンドで見える Mem-free は、メモリが残り 1M 程度しか残っていないように見えることが多いです。

バッファキャッシュやページキャッシュで使われれているメモリ量は Mem-buffers や Mem-cached で確認できるため、これらの使用メモリ量を Mem-free に加えた値(-/+ buffers/cache の行の free の値)が、大まかなメモリ空き容量になります。ただし、これらのキャッシュには、その時点でディスクと同期が取れていない、いわゆる Dirty な領域も含まれているため、実際のメモリ空き容量はこの計算結果に比べて少し小さくなるはずです。

という話を偉そうにしようと思ったら余裕で Mem-free 空いてた。

$ free -m
             total       used       free     shared    buffers     cached
Mem:          1971       1207        764          0        232        768
-/+ buffers/cache:        206       1764
Swap:         5772          0       5772