free コマンド

システム内の空きメモリと使用中メモリの量を表示します。

概要

free コマンドは、システム内の物理メモリとスワップメモリの合計、使用中、空き容量を表示します。また、カーネルが使用しているバッファとキャッシュも表示します。メモリ使用状況のスナップショットを提供し、ユーザーがシステムリソースを監視し、メモリ関連の問題を診断するのに役立ちます。

オプション

-b

メモリ量をバイト単位で表示します。

$ free -b
              total        used        free      shared  buff/cache   available
Mem:    8273514496  3868327936  1535881216   602931200  2869305344  3459538944
Swap:   2147479552           0  2147479552

-k

メモリ量をキロバイト単位で表示します(デフォルト)。

$ free -k
              total        used        free      shared  buff/cache   available
Mem:        8079604     3777664     1500860      588800     2801080     3378456
Swap:       2097148           0     2097148

-m

メモリ量をメガバイト単位で表示します。

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           7889        3689        1465         574        2735        3299
Swap:          2047           0        2047

-g

メモリ量をギガバイト単位で表示します。

$ free -g
              total        used        free      shared  buff/cache   available
Mem:              7           3           1           0           2           3
Swap:             1           0           1

-h, --human

すべての出力フィールドを自動的に最短の3桁単位にスケーリングし、単位を表示します。

$ free -h
              total        used        free      shared  buff/cache   available
Mem:          7.7Gi       3.6Gi       1.4Gi       574Mi       2.7Gi       3.2Gi
Swap:         2.0Gi          0B       2.0Gi

-s, --seconds N

N秒間隔で更新しながら結果を継続的に表示します。

$ free -s 2
              total        used        free      shared  buff/cache   available
Mem:        8079604     3777664     1500860      588800     2801080     3378456
Swap:       2097148           0     2097148

              total        used        free      shared  buff/cache   available
Mem:        8079604     3778112     1500412      588800     2801080     3378008
Swap:       2097148           0     2097148

-t, --total

列の合計を示す行を表示します。

$ free -t
              total        used        free      shared  buff/cache   available
Mem:        8079604     3777664     1500860      588800     2801080     3378456
Swap:       2097148           0     2097148
Total:     10176752     3777664     3598008

-w, --wide

ワイドモードに切り替えます。ワイドモードでは80文字より長い行が生成されます。このモードではバッファとキャッシュが別々の列で報告されます。

$ free -w
              total        used        free      shared     buffers       cache   available
Mem:        8079604     3777664     1500860      588800      245760     2555320     3378456
Swap:       2097148           0     2097148

使用例

基本的なメモリ情報

$ free
              total        used        free      shared  buff/cache   available
Mem:        8079604     3777664     1500860      588800     2801080     3378456
Swap:       2097148           0     2097148

人間が読みやすい形式で合計を表示

$ free -ht
              total        used        free      shared  buff/cache   available
Mem:          7.7Gi       3.6Gi       1.4Gi       574Mi       2.7Gi       3.2Gi
Swap:         2.0Gi          0B       2.0Gi
Total:        9.7Gi       3.6Gi       3.4Gi

5秒間隔での継続的なモニタリング

$ free -h -s 5
              total        used        free      shared  buff/cache   available
Mem:          7.7Gi       3.6Gi       1.4Gi       574Mi       2.7Gi       3.2Gi
Swap:         2.0Gi          0B       2.0Gi

ヒント

メモリ出力の理解

「available」と「free」の解釈

システムに十分なメモリがあるかを評価する際は、「free」よりも「available」列の方が重要です。これには、解放して使用できるメモリが含まれています。

時間経過に伴うメモリのモニタリング

free -s Nを使用して時間の経過とともにメモリ使用量をモニタリングすると、メモリリークや使用パターンを特定するのに役立ちます。

キャッシュメモリのクリア

システム管理者は以下のコマンドでページキャッシュ、dentriesおよびinodesを解放できます:

$ sudo sh -c "sync; echo 3 > /proc/sys/vm/drop_caches"

(注意:これは慎重に行うべきであり、通常の操作ではほとんど必要ありません)

よくある質問

Q1. 「free」メモリが非常に少ないとはどういう意味ですか?

A. 空きメモリが少ないことは必ずしも問題ではありません。Linuxはパフォーマンス向上のためにディスクキャッシュとして利用可能なメモリを使用します。アプリケーションに割り当て可能なメモリの良い指標として「available」列を見てください。

Q2. なぜスワップメモリが使用されていないのですか?

A. スワップは物理メモリがほぼ使い果たされた場合や、非アクティブなメモリページに対してのみ使用されます。システムに十分なRAMがある場合、スワップは使用されないままかもしれません。

Q3. メモリ使用量を継続的に監視するにはどうすればよいですか?

A. free -s Nを使用します。Nは更新間隔の秒数です。例えば、free -s 5は5秒ごとに更新されます。

Q4. バッファとキャッシュの違いは何ですか?

A. バッファはブロックデバイスI/Oに使用され、キャッシュはファイルシステムページに使用されます。標準出力では「buff/cache」として結合されていますが、-wオプションで別々に表示できます。

参考文献

https://www.man7.org/linux/man-pages/man1/free.1.html

改訂履歴