目標
- freeコマンドについて理解する
freeコマンド
free コマンドは、システムのメモリ使用状況を簡単に確認するためのツールです。特に、物理メモリ(RAM)、スワップメモリ、バッファキャッシュやページキャッシュなどの状態を表示して、システムのメモリがどのように使用されているかを確認するのに役立ちます。
参考:バッファキャッシュとページキャッシュ
バッファキャッシュとページキャッシュは、RAMを活用してディスクアクセスを高速化する仕組みです。
- バッファキャッシュは、主にブロックデバイスに関連するディスクのブロック単位で管理されるメタデータをキャッシュします。最近のLinuxカーネルでは、ページキャッシュがその役割も含んでいるため、バッファキャッシュの使用は限定的です。
- ページキャッシュは、ディスク上のファイルデータをメモリにキャッシュし、再度ディスクから読み込まずに高速アクセスを可能にします。主にユーザー空間からのファイルアクセスに使われます。
両者は厳密には分離されているわけではなく、実際には同じメモリ領域を共有することがあります。現代のLinuxカーネルでは、ページキャッシュがほとんどのディスクI/Oを担当しており、バッファキャッシュの役割はかなり制限されています。
free コマンドの使い方
free コマンドは、システムのメモリ使用状況を簡単に確認するためのツールです。
free コマンドの基本
free コマンドの使い方は次の通りです。
free [option]
デフォルトでは、free コマンドは、システムのメモリ使用状況をMB(またはGB)単位で表示します。もしKB単位で表示したい場合は、-k オプションを使用することもできます。
出力例
以下はfree コマンドを実行した際の出力例です。
$ free
total used free shared buff/cache available
Mem: 2.0G 1.0G 1.0G 121M 67M 877M
Swap: 2.0G 500M 1.5G
各フィールドの説明
- Mem(メインメモリの使用状況)
- total: システムに搭載されている物理メモリ(RAM)の総容量。
- used: 使用中の物理メモリ量。アプリケーションやカーネルが現在使用しているメモリの量。
- free: 空きメモリ量。まだ使用されていない、またはキャッシュされていないメモリ。
- shared: 他のプロセスと共有されているメモリの量。主に共有メモリ(shm や mmap)に関連。
- buffers: ファイルシステムのメタデータ(ディレクトリやインデックス情報)をキャッシュするために使用されるメモリ。
- cached: ファイルの内容をメモリにキャッシュするために使用されるメモリ。ページキャッシュがこれに該当。
- -/+ buffers/cache
- この行は、キャッシュやバッファを除いた実際に使用されているメモリと空きメモリの量を表示します。キャッシュやバッファも実際にはシステムが再利用できるため、メモリに余裕があると見なされることがあります。
- Swap(スワップメモリの使用状況)
- total: スワップ領域の総容量(ディスク上の仮想メモリ領域)。
- used: 使用中のスワップメモリの量。通常、メモリが足りなくなると、ディスク上のスワップ領域にデータが書き込まれます。
- free: 空きスワップメモリの量。スワップ領域が使われていない状態。
オプション
freeコマンドにはいくつかのオプションがあり、表示内容をカスタマイズできます。
-h(人間が読みやすい形式)
-h オプションで表示される単位(KB、MB、GBなど)はシステムやコマンド実行時の環境に依存します。通常、free コマンドは自動で適切な単位を選択しますが、-h オプションを付けることで確実に可読性の高い形式で表示されます。
$ free -h
total used free shared buff/cache available
Mem: 2.0G 1.0G 1.0G 121M 67M 877M
Swap: 2.0G 500M 1.5G
-m(メモリをMB単位で表示)-m
オプションを使うと、メモリのサイズがMB(メガバイト)単位で表示されます。
free -m
-g(メモリをGB単位で表示)-g
オプションを使うと、メモリのサイズがGB(ギガバイト)単位で表示されます。
free -g
-t(合計行を表示)
-tオプションを使うと、物理メモリとスワップメモリを合計した「合計行」が表示されます。これはシステム全体のメモリ状況を把握する際に便利です。
free -t
応用:free と vmstat を組み合わせて使用
freeコマンドでメモリの使用状況を確認した後、vmstatを使ってシステムの状態をより詳細に分析できます。たとえば、freeでメモリ不足が発生している場合、vmstatを使ってスワップの状態やプロセスの状態を確認すると、原因が特定しやすくなります。
free コマンドのまとめ
free コマンドは、システムのメモリ使用状況を確認するためのシンプルで強力なツールです。特に、システムがメモリ不足になっていないか、スワップが頻繁に使われていないかを把握するために有用です。また、-h や -m などのオプションを使用することで、表示形式をカスタマイズしてより見やすくすることができます。
今回は以上になります。

ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

