理系学生日記

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

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 空いてた。

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