freeコマンドとは?Linuxでメモリ・スワップ使用量を確認する方法

Linux

Linuxでメモリ使用量やスワップ使用量を確認したいときは、freeコマンドを使用します。

前回までに、mkswapでスワップ領域を作成する方法、swaponでスワップを有効化する方法、swapoffでスワップを無効化する方法を解説しました。

ただし、スワップを設定しても、実際にメモリやスワップがどれくらい使われているのかを確認できなければ、状態を判断できません。

そこで使うのがfreeコマンドです。

freeを使うと、物理メモリの合計、使用量、空き容量、キャッシュ、利用可能メモリ、スワップ使用量などを簡単に確認できます。

この記事では、Linux初心者でも実際に使えるように、freeコマンドの基本、free -hの見方、availablebuff/cacheの意味、スワップ使用量の確認、topvmstatswapon --showとの違いまで実例付きで解説します。

  1. freeコマンドとは
  2. freeコマンドで確認できること
  3. freeコマンドの基本構文
  4. free -hの見方
  5. Mem行の意味
  6. Swap行の意味
  7. availableを重視する理由
  8. buff/cacheとは
  9. usedが多いと危険なのか
  10. freeとavailableの違い
  11. MB単位で表示する方法
  12. GB単位で表示する方法
  13. 合計行を表示する方法
  14. 一定間隔で表示し続ける方法
  15. 表示回数を指定する方法
  16. 横幅を広く表示する方法
  17. freeコマンドの主なオプション
  18. freeとswapon –showの違い
  19. freeとtopコマンドの違い
  20. freeとvmstatコマンドの違い
  21. メモリ不足を疑うときの確認手順
    1. 1. メモリとスワップの全体を確認する
    2. 2. 有効なスワップを確認する
    3. 3. プロセスごとの使用量を確認する
    4. 4. メモリやスワップの変化を継続確認する
    5. 5. より詳しい動きを確認する
  22. スワップ使用量が多いときの見方
  23. キャッシュを空きメモリと勘違いしない
  24. freeコマンドでよく使う実用例
    1. 読みやすい単位でメモリを確認する
    2. MB単位で確認する
    3. 2秒ごとに確認する
    4. 2秒ごとに5回だけ表示する
    5. 合計行も表示する
    6. buffersとcacheを分けて表示する
  25. freeコマンドでよくある注意点
    1. freeが少ないだけでメモリ不足と判断しない
    2. availableを確認する
    3. スワップ使用量が増え続ける場合は注意する
    4. freeだけで原因を断定しない
  26. freeコマンドでよくある疑問
    1. freeが少ないのにavailableが多い
    2. buff/cacheが多い
    3. スワップが少し使われている
    4. availableが少ない
    5. Swapのtotalが0になっている
  27. よくある質問
    1. freeコマンドは何に使いますか?
    2. 一番よく使うfreeコマンドはどれですか?
    3. freeとavailableの違いは何ですか?
    4. buff/cacheが多いのは問題ですか?
    5. スワップ使用量を見るには?
    6. 一定間隔でメモリ使用量を確認できますか?
    7. 表示回数を指定できますか?
    8. freeとtopの違いは何ですか?
    9. freeだけでメモリ不足の原因は分かりますか?
    10. UbuntuやCentOS Streamでも使えますか?
  28. まとめ

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は、人間が読みやすい単位で表示するオプションです。

メモリ容量がMiGiで表示されるため、初心者にも分かりやすくなります。

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 新しいアプリケーションが利用可能と見込まれる容量

初心者がまず見るべきなのは、availableSwapusedです。

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では、キャッシュやバッファを含めた見え方により、使用量が多く見えることがあります。

確認するときは、次の順番で見ると分かりやすいです。

  1. availableが十分にあるか
  2. Swapusedが増え続けていないか
  3. サーバーの動作が重くなっていないか
  4. topなどで特定プロセスがメモリを大量に使っていないか

usedだけを見て判断せず、availableやスワップ使用量とセットで確認しましょう。

freeとavailableの違い

freeavailableは混同しやすい項目です。

項目 意味 見方
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オプションを使うと、bufferscacheを分けて表示できます。

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 -hfree -mfree -h -s 2です。

freeとswapon –showの違い

freeswapon --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だけで原因を断定するのではなく、topvmstatと組み合わせると判断しやすくなります。

スワップ使用量が多いときの見方

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

スワップ使用量が増え続ける場合は注意する

スワップが常に多く使われている場合、物理メモリ不足の可能性があります。

topvmstatで追加確認しましょう。

top
vmstat 2

freeだけで原因を断定しない

freeは全体のメモリ状況を見るコマンドです。

どのプロセスが原因かまでは分からないため、必要に応じてtoppsを使います。

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 -hSwap行を見るか、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では全体状況は分かりますが、原因プロセスまでは分かりません。必要に応じてtoppsを使います。

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列だけでなく、availableSwapの使用量を確認しましょう。

Linuxでは空きメモリをキャッシュとして活用するため、freeが少なくてもavailableが十分にあれば、すぐにメモリ不足とは限りません。

スワップ使用量が多い場合やサーバーが重い場合は、topvmstatも組み合わせて確認します。

top
vmstat 2
swapon --show

freeは、Linuxサーバーの状態確認やメモリ不足調査の入口になる重要なコマンドです。まずはfree -hを使い、availableSwapの見方を覚えておきましょう。

コメント

タイトルとURLをコピーしました