12-LPIC「level1」

LPIC|level 1【freeコマンド】

目標

  • 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

各フィールドの説明

  1. Mem(メインメモリの使用状況)
    • total: システムに搭載されている物理メモリ(RAM)の総容量。
    • used: 使用中の物理メモリ量。アプリケーションやカーネルが現在使用しているメモリの量。
    • free: 空きメモリ量。まだ使用されていない、またはキャッシュされていないメモリ。
    • shared: 他のプロセスと共有されているメモリの量。主に共有メモリ(shm や mmap)に関連。
    • buffers: ファイルシステムのメタデータ(ディレクトリやインデックス情報)をキャッシュするために使用されるメモリ。
    • cached: ファイルの内容をメモリにキャッシュするために使用されるメモリ。ページキャッシュがこれに該当。
  2. -/+ buffers/cache
    • この行は、キャッシュやバッファを除いた実際に使用されているメモリと空きメモリの量を表示します。キャッシュやバッファも実際にはシステムが再利用できるため、メモリに余裕があると見なされることがあります。
  3. 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 などのオプションを使用することで、表示形式をカスタマイズしてより見やすくすることができます。

今回は以上になります。

「Linux」おすすめ書籍6選【初心者・脱初心者用】| 現役エンジニア&プログラミングスクール講師「Linux」初心者の方がLinuxの操作や仕組みを理解するためのお勧めの書籍について取り上げています。また中級者として更に進んだ学習ができる書籍についても1冊取り上げています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

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

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST