5.5. リソースの確認 -freeコマンド-


5.5. リソースの確認

5.5.1. メモリの確認 -freeコマンド-

【コマンド説明】
現在のメモリの使用状況を表示します。システムの物理メモリとスワップメモリそれぞれに対して、使用量と空き容量を表示し、カーネルが用いているバッファも表示します。

freeコマンドを実行すると下記の様な表示がされます。

                 total       used          free       shared   buffers     cached
Mem: 24676332 7603856 17072476               0  581292  4789772
-/+ buffers/cache: 2232792 22443540
Swap: 4096564 0 4096564

それぞれの値の意味は以下の通りです。

  • 一行目
項目 Kbyte 説明
total 24676332 全物理メモリをKByteで表示
used 7603856 使用しているメモリをKByte表示
free 17072476 未使用のメモリをKByte表示
shared 0 古い機能の名残のため特に関係無し
buffers 581292 バッファとして利用されているメモリをKByte表示
cached 4789772 キャッシュとして利用されているメモリをKByte表示
  • 二行目
項目 Kbyte 説明
used 2232792 一行目のusedからbuffersとcachedを引いた値
free 22443540 一行目のfreeにbuffersとcachedを加えた値
  • 三行目
項目 Kbyte 説明
total 4096564 swapとして割り当てられているKByte
used 0 使われているswapのKByte

使用中のメモリの量は1行目のusedの値ではなく2行目のusedの値を確認します。バッファとキャッシュが使用している値も、全てではありませんが空きメモリとして使用できるためです。ですので、実際に利用できるおおよその空きメモリ量は2行目のfreeになります。この場合では22443540Kbyteとなります。

※ バッファとキャッシュについて
Linuxではメモリにロードされたストレージのデータをページキャッシュとして利用します。
ページキャッシュは読み出し/書き出しにストレージを介さないため、非常に高速に動作します。

ページキャッシュは新たなストレージデータの読み出し/書き出し要求などがあってメモリが新規に必要とならない限り、メモリを解放しません。また、要求があってもページキャッシュは全てのメモリを解放するわけではありません。要求があればすぐにメモリの解放ができるのはページキャッシュのうちストレージとの同期がとれている部分です。要求があってもメモリの解放ができないのはページキャッシュのうちストレージと同期がとれていない部分です。ただ、ページキャッシュとストレージとの同期は定期的に行われていますので、時間が経てば解放する事が可能になります。

ページキャッシュのうちファイルなどのメタデータをキャッシュしている値がfreeコマンドのbuffers、ファイルのデータ本体をキャッシュしている値がfreeコマンドのcachedです。

ですので、buffersとcachedのうち、ストレージと同期がとれている部分は空きメモリとしてすぐに使用可能だと言えます。ただし、freeコマンドではストレージと同期がとれているページキャッシュかどうかまでは判断できず、正確な値は取得ができないため、一般的にはfreeコマンド実行時の「freeの値+buffersの値+cachedの値」を使用できるメモリ量の概算として判断することが多い様です。

【オプション説明】

-k メモリの量をキロバイト単位で表示します。オプションを何も付けない場合のデフォルトの表示でもキロバイト単位で表示されます。
-b メモリの量をバイト単位で表示します。
-m メモリの量をメガバイト単位で表示します。
-g メモリの量をギガバイト単位で表示します。
-t 物理メモリ、スワップメモリの合計を示す行も表示します。
-o バッファの分を増減した行を表示しません。
-s オプションを指定すると delay 秒間隔でポーリングを続けます。
-V バージョン情報を表示します。

【動画説明】

freeコマンドを実行してみましょう。

$ free

freeコマンドにオプションを付けて実行して見やすくしてみましょう。

$ free –m
$ free -g

freeコマンドを3秒間隔で実行してみましょう。

$ free –s 3

【問題】
1. freeコマンドを実行して自分のPCの実際に利用できる空きメモリの概算を確認しましょう

資料をダウンロード