SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

【linux】メモリの使用状況を確認する freeコマンド

問題

freeコマンドを実行すると、次のようにメモリの使用状況を表示してくれる。

             total       used       free     shared    buffers     cached
Mem:        510532     301568     208964          0      56756     141376
-/+ buffers/cache:     103436     407096
Swap:      2048276          0    2048276

どこをどう見ればよい?

解説

項目 説明
Mem ページキャッシュとバッファキャッシュを考慮しないメモリサイズ
 total OSが認識している物理的なメモリサイズ。RAIDカードやNICなどを装着しているときは、それらのためにメモリが使われるので実際の搭載メモリサイズよりも少なくなります。
 used 使用しているメモリサイズ。これにはバッファキャッシュやページキャッシュなどOSがディスクキャッシュのために使用しているメモリも含まれます。
 free 空きメモリサイズ。この値にはバッファキャッシュとページキャッシュが含まれていません。一般にLinuxは使い続けるほど、メモリをキャッシュに割り当てます。そのため使い続けるほどfreeの値はゼロに近づきます。この値が少ないからといって空きメモリがないわけではないことに注意してください。
 shared 共有メモリに割り当てられたメモリ。これは古い機能の名残であり、無視してよい。
 buffers バッファキャッシュに割り当てたメモリ。バッファキャッシュはブロックデバイス用のキャッシュです。
 cached ページキャッシュに割り当てたメモリ。ページキャッシュはファイルに対するキャッシュです。
-/+buffers/cache ページキャッシュとバッファキャッシュを考慮したメモリサイズ
 used 1行目のusedからページキャッシュとバッファキャッシュを引いた値。OSとアプリケーションが純粋に使用しているメモリサイズを表します。
 free 1行目のfreeにページキャッシュとバッファキャッシュを足した値。キャッシュに割り当てられているメモリを自由に割り当て可能なメモリと考えれば、この値が空きメモリサイズになります。
Swap スワップに割り当てたサイズ。
 total スワップに割り当てたディスクサイズ。
 used 割り当てた中で使用中のサイズ。
 free 割り当てた中で使用していないサイズ。

下図の場合、

             total       used       free     shared   buffers     cached
Mem:        510532     301568     208964          0      56756     141376
-/+ buffers/cache:     103436     407096
Swap:      2048276          0    2048276

shared は無視
ここがOSと各アプリケーションが使用しているメモリ
linuxがキャッシュなどを活用して賢く動作しているとき、freeは0に近づいていく
こちらが空きメモリと考えてよい

関連するメモ

コメント