Linuxでメモリ使用量やスワップ使用量を確認したいときは、freeコマンドを使用します。
前回までに、mkswapでスワップ領域を作成する方法、swaponでスワップを有効化する方法、swapoffでスワップを無効化する方法を解説しました。
ただし、スワップを設定しても、実際にメモリやスワップがどれくらい使われているのかを確認できなければ、状態を判断できません。
そこで使うのがfreeコマンドです。
freeを使うと、物理メモリの合計、使用量、空き容量、キャッシュ、利用可能メモリ、スワップ使用量などを簡単に確認できます。
この記事では、Linux初心者でも実際に使えるように、freeコマンドの基本、free -hの見方、availableやbuff/cacheの意味、スワップ使用量の確認、top・vmstat・swapon --showとの違いまで実例付きで解説します。
- freeコマンドとは
- freeコマンドで確認できること
- freeコマンドの基本構文
- free -hの見方
- Mem行の意味
- Swap行の意味
- availableを重視する理由
- buff/cacheとは
- usedが多いと危険なのか
- freeとavailableの違い
- MB単位で表示する方法
- GB単位で表示する方法
- 合計行を表示する方法
- 一定間隔で表示し続ける方法
- 表示回数を指定する方法
- 横幅を広く表示する方法
- freeコマンドの主なオプション
- freeとswapon –showの違い
- freeとtopコマンドの違い
- freeとvmstatコマンドの違い
- メモリ不足を疑うときの確認手順
- スワップ使用量が多いときの見方
- キャッシュを空きメモリと勘違いしない
- freeコマンドでよく使う実用例
- freeコマンドでよくある注意点
- freeコマンドでよくある疑問
- よくある質問
- まとめ
freeコマンドとは
freeは、Linuxでメモリとスワップの使用状況を表示するコマンドです。
基本的には、次のように実行します。
free
より読みやすい単位で表示したい場合は、-hオプションを使います。
free -h
実行結果の例です。
total used free shared buff/cache available
Mem: 1.9Gi 850Mi 240Mi 25Mi 850Mi 890Mi
Swap: 2.0Gi 128Mi 1.9Gi
このように、メモリとスワップの状態をまとめて確認できます。
freeコマンドで確認できること
freeコマンドでは、主に次の情報を確認できます。
- 物理メモリの合計容量
- 現在使われているメモリ量
- 完全に空いているメモリ量
- キャッシュやバッファとして使われているメモリ量
- アプリケーションが利用可能なメモリ量
- スワップの合計容量
- スワップの使用量
- スワップの空き容量
サーバーが重いとき、メモリ不足が疑われるとき、スワップを追加したあとなどにまず確認したいコマンドです。
freeコマンドの基本構文
freeコマンドの基本構文は次のとおりです。
free [オプション]
よく使う形は、次のfree -hです。
free -h
-hは、人間が読みやすい単位で表示するオプションです。
メモリ容量がMiやGiで表示されるため、初心者にも分かりやすくなります。
free -hの見方
free -hを実行すると、次のような表が表示されます。
total used free shared buff/cache available
Mem: 1.9Gi 850Mi 240Mi 25Mi 850Mi 890Mi
Swap: 2.0Gi 128Mi 1.9Gi
大きく分けると、Mem行が物理メモリ、Swap行がスワップ領域です。
| 項目 | 意味 |
|---|---|
total |
合計容量 |
used |
使用中として表示される容量 |
free |
完全に空いている容量 |
shared |
共有メモリとして使われている容量 |
buff/cache |
バッファやキャッシュとして使われている容量 |
available |
新しいアプリケーションが利用可能と見込まれる容量 |
初心者がまず見るべきなのは、availableとSwapのusedです。
Mem行の意味
Mem行は、物理メモリの状態を表します。
Mem: 1.9Gi 850Mi 240Mi 25Mi 850Mi 890Mi
この例では、物理メモリの合計が約1.9GiBで、そのうち850MiBが使用中として表示されています。
ただし、usedだけを見て「メモリが足りない」と判断するのは早いです。
Linuxは空いているメモリをキャッシュとして活用するため、buff/cacheが大きくなることがあります。
重要なのは、実際に新しい処理に使える見込みのあるavailableです。
Swap行の意味
Swap行は、スワップ領域の状態を表します。
Swap: 2.0Gi 128Mi 1.9Gi
この例では、スワップ領域の合計が2.0GiBで、そのうち128MiBが使われています。
| 項目 | 意味 |
|---|---|
total |
スワップの合計容量 |
used |
使用中のスワップ容量 |
free |
空いているスワップ容量 |
スワップが少し使われているだけなら、すぐに異常とは限りません。
ただし、スワップ使用量が常に多く、サーバーの動作が重い場合は、物理メモリ不足やプロセスのメモリ使用量を確認する必要があります。
availableを重視する理由
freeコマンドを見るとき、初心者が特に重視したいのがavailableです。
available
890Mi
availableは、新しいアプリケーションやプロセスが利用可能と見込まれるメモリ量です。
Linuxでは、ファイル読み込みを高速化するためにメモリをキャッシュとして使います。
そのため、freeが少なくても、availableが十分にあれば、すぐにメモリ不足とは判断しません。
たとえば、次のような状態です。
total used free shared buff/cache available
Mem: 3.8Gi 1.2Gi 200Mi 30Mi 2.4Gi 2.1Gi
freeは200Miしかありませんが、availableは2.1Giあります。
この場合、完全な空きメモリは少なく見えても、実際に利用可能なメモリには余裕があります。
buff/cacheとは
buff/cacheは、バッファやキャッシュとして使われているメモリです。
buff/cache
850Mi
Linuxは、空いているメモリを何も使わずに放置するのではなく、ファイル読み込みやディスクアクセスを高速化するためにキャッシュとして使います。
このキャッシュは、必要になれば解放されてアプリケーションに使われます。
そのため、buff/cacheが大きいからといって、必ずしも悪い状態ではありません。
usedが多いと危険なのか
usedが多く見えても、それだけで危険とは限りません。
Linuxでは、キャッシュやバッファを含めた見え方により、使用量が多く見えることがあります。
確認するときは、次の順番で見ると分かりやすいです。
availableが十分にあるかSwapのusedが増え続けていないか- サーバーの動作が重くなっていないか
topなどで特定プロセスがメモリを大量に使っていないか
usedだけを見て判断せず、availableやスワップ使用量とセットで確認しましょう。
freeとavailableの違い
freeとavailableは混同しやすい項目です。
| 項目 | 意味 | 見方 |
|---|---|---|
free |
完全に未使用のメモリ | 少なくても即問題とは限らない |
available |
必要に応じて利用可能と見込まれるメモリ | 初心者はこちらを重視する |
Linuxではキャッシュを積極的に使うため、freeが少なくなることがあります。
実際の余裕を見るときは、availableを確認しましょう。
MB単位で表示する方法
MB単位で表示したい場合は、-mオプションを使用します。
free -m
実行結果の例です。
total used free shared buff/cache available
Mem: 1960 850 240 25 870 890
Swap: 2048 128 1920
スクリプトやメモリ監視で数値を扱いたい場合に便利です。
GB単位で表示する方法
GB単位で表示したい場合は、-gオプションを使用します。
free -g
実行結果の例です。
total used free shared buff/cache available
Mem: 7 2 1 0 4 5
Swap: 2 0 1
大きなメモリ容量のサーバーでは、ざっくり確認したいときに使えます。
合計行を表示する方法
-tオプションを使うと、物理メモリとスワップの合計行を表示できます。
free -h -t
実行結果の例です。
total used free shared buff/cache available
Mem: 1.9Gi 850Mi 240Mi 25Mi 850Mi 890Mi
Swap: 2.0Gi 128Mi 1.9Gi
Total: 3.9Gi 978Mi 2.1Gi
メモリとスワップを合わせた全体量をざっくり確認したい場合に使えます。
一定間隔で表示し続ける方法
-sオプションを使うと、指定した秒数ごとにfreeの結果を表示できます。
free -h -s 2
この例では、2秒ごとにメモリ状況を表示します。
負荷テスト中や、コマンド実行中のメモリ変化を見たいときに便利です。
停止するには、Ctrl + Cを押します。
表示回数を指定する方法
-cオプションを使うと、表示回数を指定できます。
free -h -s 2 -c 5
この例では、2秒ごとに5回表示して終了します。
短時間だけメモリ変化を確認したい場合に使えます。
横幅を広く表示する方法
-wオプションを使うと、buffersとcacheを分けて表示できます。
free -h -w
実行結果の例です。
total used free shared buffers cache available
Mem: 1.9Gi 850Mi 240Mi 25Mi 60Mi 790Mi 890Mi
Swap: 2.0Gi 128Mi 1.9Gi
通常はbuff/cacheでまとめて見れば十分ですが、より細かく確認したい場合に使えます。
freeコマンドの主なオプション
| オプション | 説明 |
|---|---|
-h |
読みやすい単位で表示する |
-m |
MB単位で表示する |
-g |
GB単位で表示する |
-b |
バイト単位で表示する |
-k |
KB単位で表示する |
-t |
合計行を表示する |
-s 秒数 |
指定秒数ごとに繰り返し表示する |
-c 回数 |
表示回数を指定する |
-w |
横幅を広く表示し、buffersとcacheを分ける |
--help |
ヘルプを表示する |
初心者がまず覚えるべきなのは、free -h、free -m、free -h -s 2です。
freeとswapon –showの違い
freeとswapon --showは、どちらもスワップ確認で使いますが、確認できる内容が違います。
| コマンド | 確認できる内容 |
|---|---|
free -h |
メモリ全体とスワップ全体の使用量 |
swapon --show |
どのスワップファイル・パーティションが有効か |
メモリとスワップの全体量を見るならfree -h、どのスワップが有効かを見るならswapon --showを使います。
freeとtopコマンドの違い
topは、リアルタイムでシステム全体やプロセスごとの使用状況を確認するコマンドです。
freeは、メモリとスワップの全体状況を簡潔に表示します。
| コマンド | 主な用途 |
|---|---|
free |
メモリとスワップの全体状況を確認する |
top |
CPU・メモリ使用率やプロセス状況をリアルタイムで確認する |
メモリ不足かどうかをざっくり見るならfree -h、どのプロセスがメモリを使っているか見るならtopを使います。
freeとvmstatコマンドの違い
vmstatは、メモリ、スワップ、CPU、I/Oなどの統計情報を表示するコマンドです。
freeよりも監視向けの情報が多く、スワップイン・スワップアウトの動きも確認できます。
| コマンド | 主な用途 |
|---|---|
free |
メモリとスワップの現在量を確認する |
vmstat |
メモリ、スワップ、CPU、I/Oの動きを確認する |
まずfree -hで全体を確認し、継続的な動きやスワップの発生状況を見たい場合はvmstatを使うと分かりやすいです。
メモリ不足を疑うときの確認手順
サーバーが重い、アプリケーションが落ちる、処理が遅いといった場合は、次の流れで確認します。
1. メモリとスワップの全体を確認する
free -h
2. 有効なスワップを確認する
swapon --show
3. プロセスごとの使用量を確認する
top
4. メモリやスワップの変化を継続確認する
free -h -s 2
5. より詳しい動きを確認する
vmstat 2
freeだけで原因を断定するのではなく、topやvmstatと組み合わせると判断しやすくなります。
スワップ使用量が多いときの見方
free -hでスワップ使用量が多い場合、次の点を確認します。
availableが少ないかSwap usedが増え続けているか- 特定プロセスがメモリを大量に使っていないか
- サーバーの応答が遅くなっていないか
- メモリ容量が用途に対して不足していないか
スワップが少し使われているだけなら、すぐに問題とは限りません。
ただし、スワップ使用量が多く、サーバーが重い場合は、物理メモリ不足の可能性があります。
キャッシュを空きメモリと勘違いしない
Linux初心者が混乱しやすいのが、freeとキャッシュの関係です。
Linuxでは、空きメモリをキャッシュとして使うことがあります。
そのため、freeが少なく見えても、availableが十分にあれば、すぐにメモリ不足とは限りません。
次のように覚えると分かりやすいです。
freeは完全に空いているメモリbuff/cacheはキャッシュとして使っているメモリavailableは必要に応じて使える見込みのメモリ
freeコマンドでよく使う実用例
読みやすい単位でメモリを確認する
free -h
MB単位で確認する
free -m
2秒ごとに確認する
free -h -s 2
2秒ごとに5回だけ表示する
free -h -s 2 -c 5
合計行も表示する
free -h -t
buffersとcacheを分けて表示する
free -h -w
freeコマンドでよくある注意点
freeが少ないだけでメモリ不足と判断しない
free列が少なくても、availableが十分にあれば、すぐにメモリ不足とは限りません。
Linuxはメモリをキャッシュとして活用するためです。
availableを確認する
現在のメモリ余裕を見るときは、availableを確認しましょう。
free -h
スワップ使用量が増え続ける場合は注意する
スワップが常に多く使われている場合、物理メモリ不足の可能性があります。
topやvmstatで追加確認しましょう。
top
vmstat 2
freeだけで原因を断定しない
freeは全体のメモリ状況を見るコマンドです。
どのプロセスが原因かまでは分からないため、必要に応じてtopやpsを使います。
top
ps aux --sort=-%mem | head
freeコマンドでよくある疑問
freeが少ないのにavailableが多い
これはLinuxではよくある状態です。
空きメモリがキャッシュとして使われているため、freeは少なく見えます。
availableが十分にあれば、すぐに問題とは限りません。
buff/cacheが多い
Linuxがファイルアクセスなどを高速化するためにキャッシュを使っている状態です。
必要になれば解放されるため、必ずしも悪い状態ではありません。
スワップが少し使われている
少量のスワップ使用は、すぐに問題とは限りません。
ただし、スワップ使用量が増え続ける、サーバーが重い、availableが少ないといった場合は注意が必要です。
availableが少ない
利用可能なメモリが少ない状態です。
プロセスのメモリ使用量を確認します。
top
ps aux --sort=-%mem | head
Swapのtotalが0になっている
スワップが設定されていない、または無効化されている可能性があります。
swapon --show
必要に応じて、スワップファイルやスワップパーティションを作成します。
よくある質問
freeコマンドは何に使いますか?
Linuxで物理メモリとスワップ領域の使用状況を確認するために使います。
一番よく使うfreeコマンドはどれですか?
読みやすい単位で表示できるfree -hがよく使われます。
free -h
freeとavailableの違いは何ですか?
freeは完全に未使用のメモリです。availableは、必要に応じて新しい処理に使えると見込まれるメモリです。初心者はavailableを重視すると判断しやすいです。
buff/cacheが多いのは問題ですか?
必ずしも問題ではありません。Linuxがファイルアクセスを高速化するためにキャッシュとしてメモリを使っている状態です。
スワップ使用量を見るには?
free -hのSwap行を見るか、swapon --showを使います。
free -h
swapon --show
一定間隔でメモリ使用量を確認できますか?
-sオプションを使います。
free -h -s 2
表示回数を指定できますか?
-cオプションを組み合わせます。
free -h -s 2 -c 5
freeとtopの違いは何ですか?
freeはメモリとスワップの全体状況を確認するコマンドです。topはプロセスごとのCPU・メモリ使用状況をリアルタイムで確認するコマンドです。
freeだけでメモリ不足の原因は分かりますか?
freeでは全体状況は分かりますが、原因プロセスまでは分かりません。必要に応じてtopやpsを使います。
UbuntuやCentOS Streamでも使えますか?
はい。Ubuntu、Debian、CentOS Stream、Rocky Linux、AlmaLinuxなど、多くのLinuxディストリビューションで利用できます。
まとめ
freeコマンドは、Linuxでメモリ使用量とスワップ使用量を確認するためのコマンドです。
最もよく使うのは、読みやすい単位で表示するfree -hです。
free -h
MB単位で表示したい場合は、-mを使います。
free -m
一定間隔で確認したい場合は、-sを使います。
free -h -s 2
freeを見るときは、free列だけでなく、availableとSwapの使用量を確認しましょう。
Linuxでは空きメモリをキャッシュとして活用するため、freeが少なくてもavailableが十分にあれば、すぐにメモリ不足とは限りません。
スワップ使用量が多い場合やサーバーが重い場合は、topやvmstatも組み合わせて確認します。
top
vmstat 2
swapon --show
freeは、Linuxサーバーの状態確認やメモリ不足調査の入口になる重要なコマンドです。まずはfree -hを使い、availableとSwapの見方を覚えておきましょう。




コメント