【完全ガイド】Linux freeコマンドの使い方・オプション一覧|メモリ使用率の見方と監視方法

最終更新日 2025年2月21日

スポンサーリンク

Linux freeコマンドとは?基本概要とできること

Linuxのfreeコマンドは、システムのメモリ使用状況を確認するためのコマンドです。現在の空きメモリ量や、使用中のメモリ、キャッシュされているメモリ量などを簡単に確認できるため、サーバーのパフォーマンス監視やメモリ不足のトラブルシューティングに役立ちます。

メモリの使用状況を素早く把握できるため、Linuxサーバー運用において必須のコマンドの一つです。特に、パフォーマンスの低下が発生した際や、メモリリークの疑いがある場合には、freeコマンドでメモリの状態を確認することで、原因の特定がしやすくなります。

  1. freeコマンドで確認できるメモリ情報とは?
  2. なぜfreeコマンドが重要なのか?(用途と活用例)
  3. メモリ不足の診断
  4. メモリリークの検出
  5. キャッシュメモリの影響確認
  6. まとめ
freeコマンドとは?基本概要とできること

メモリ使用状況の確認

現在の空きメモリ量、使用中のメモリ、キャッシュされているメモリ量などを簡単に確認できます。

パフォーマンス監視

サーバーのパフォーマンス監視やメモリ不足のトラブルシューティングに役立ちます。

リアルタイム監視

オプションを使用することで、メモリ使用状況をリアルタイムで監視することができます。
freeコマンドとは?基本概要とできること
スポンサーリンク

freeコマンドで確認できるメモリ情報とは?

freeコマンドを実行すると、次のような出力が得られます。

$ free -m
              total        used        free      shared  buff/cache   available
Mem:          16000        8000        2000        1000        6000        7000
Swap:         2000         500        1500

この出力の各項目の意味は以下の通りです。

  • total:物理メモリ(RAM)の合計サイズ
  • used:実際に使用されているメモリ量
  • free:完全に未使用のメモリ量
  • shared:共有メモリ(主にtmpfsや一部のアプリケーションで利用)
  • buff/cache:ディスクキャッシュやバッファとして使用されているメモリ
  • available:実際に新しくアプリケーションが利用可能なメモリ量
  • Swap:スワップ領域の合計、使用済み、空き領域

特に「used」と「available」の違いを理解することが重要です。

新人エンジニア
新人エンジニア

usedの値を見ると、ほとんどのメモリが使われているように見えますが、これは問題ないのでしょうか?

先輩エンジニア
先輩エンジニア

Linuxでは、メモリを効率的に使うために、空きメモリをディスクキャッシュとして活用する仕組みがあるんだ。だから、usedの値が大きくても、availableの値が十分にあれば、メモリが不足しているわけではないよ。

新人エンジニア
新人エンジニア

じゃあ、freeの値が少なくても気にしなくていいんですか?

先輩エンジニア
先輩エンジニア

そうだね。freeの値が小さくても、availableの値が大きければ、新しいプロセスが問題なく動作できる。ただし、availableが極端に少なくなっている場合は、メモリ不足の兆候だから注意が必要だよ。

freeコマンドで確認できるメモリ情報

total

物理メモリ(RAM)の合計サイズを表示します。

used

実際に使用されているメモリ量を示します。

free

完全に未使用のメモリ量を表示します。

shared

共有メモリの量を示します。
freeコマンドで確認できるメモリ情報
スポンサーリンク

なぜfreeコマンドが重要なのか?(用途と活用例)

freeコマンドは、LinuxサーバーやPCのメモリ管理の状態をリアルタイムで把握するのに役立ちます。特に、以下のような場面で有効に活用できます。

1. メモリ不足の診断

サーバーの動作が遅い場合、freeコマンドでavailableの値をチェックすることで、メモリが不足しているかどうかを判断できます。もしavailableが極端に少なく、swapの使用量が増えている場合は、メモリ不足が原因かもしれません。

新人エンジニア
新人エンジニア

サーバーのレスポンスが急に遅くなったんですが、何を確認すればいいですか?

先輩エンジニア
先輩エンジニア

まずはfree -mavailableの値を見てみよう。もしavailableが500MB以下で、swapの使用量が増えていたら、メモリ不足が疑われるね。

2. メモリリークの検出

長時間稼働しているプロセスがメモリを解放せずに増加している場合、freeコマンドで定期的にメモリの使用量を監視すると、異常な増加を発見できます。

新人エンジニア
新人エンジニア

アプリケーションを再起動しないとどんどんメモリを消費するんですが、これってメモリリークですか?

先輩エンジニア
先輩エンジニア

可能性は高いね。watch -n 5 free -mで定期的にメモリの使用状況をチェックして、usedの値が時間とともに増え続けるなら、メモリリークの疑いがある。

3. キャッシュメモリの影響確認

Linuxは未使用メモリをディスクキャッシュとして活用しますが、特定の状況ではキャッシュが溜まりすぎて、アプリケーションに割り当てられるメモリが不足することがあります。freeコマンドのbuff/cacheの値をチェックすることで、この影響を確認できます。

新人エンジニア
新人エンジニア

usedの値が多いけど、buff/cacheもかなり大きいですね。これは問題ですか?

先輩エンジニア
先輩エンジニア

buff/cacheは基本的にすぐに解放できるメモリだから、availableが十分にあるなら問題ないよ。ただし、buff/cacheが極端に増えてavailableが減っている場合は、キャッシュが原因でメモリが逼迫している可能性があるね。

freeコマンドが重要な理由

メモリ不足の診断

サーバーの動作が遅い場合、freeコマンドでavailableの値をチェックすることで、メモリが不足しているかどうかを判断できます。

メモリリークの検出

長時間稼働しているプロセスがメモリを解放せずに増加している場合、freeコマンドで定期的にメモリの使用量を監視すると、異常な増加を発見できます。

キャッシュメモリの影響確認

freeコマンドのbuff/cacheの値をチェックすることで、キャッシュが溜まりすぎてアプリケーションに割り当てられるメモリが不足していないか確認できます。
freeコマンドが重要な理由
スポンサーリンク

まとめ

  • freeコマンドは、Linuxのメモリ使用状況を素早く確認できる重要なコマンド。
  • usedの値だけでなく、availableの値をチェックすることが重要。
  • メモリ不足の診断、メモリリークの検出、キャッシュメモリの影響確認など、様々な用途で活用できる。
  • watch free -m を使って定期的に監視すると、異常を早期に発見できる。

このように、freeコマンドを適切に活用することで、Linuxサーバーのメモリ管理を最適化し、パフォーマンスを維持することができます。

Linux freeコマンドの基本的な使い方

freeコマンドは、Linuxシステムのメモリ使用状況を素早く確認するためのコマンドです。シンプルなコマンドながら、メモリの合計量や使用量、空き容量、キャッシュの状況などを一目で把握できるため、Linuxサーバーのパフォーマンス監視やメモリ不足の診断に不可欠です。

  1. freeコマンドの基本構文と実行例
  2. メモリの各項目(total, used, free, availableなど)の意味
  3. どの数値を見れば良い?メモリ監視のポイント
  4. まとめ
freeコマンドの基本的な使い方

コマンドの実行

ターミナルで「free オプション」と入力して実行します。

オプションの追加

「free -m」や「free -h」のように、オプションを追加して見やすく表示します。

定期的な監視

「free -s 5」で定期的に更新して監視します。
freeコマンドの基本的な使い方
スポンサーリンク

freeコマンドの基本構文と実行例

freeコマンドは、オプションなしでも利用できますが、見やすくするためにオプションを指定するのが一般的です。基本的な構文は以下の通りです。

free [オプション]

基本的な実行例

オプションなしで実行すると、バイト単位でメモリの使用状況が表示されます。

$ free
              total        used        free      shared  buff/cache   available
Mem:      16384000     8192000     2048000      512000     6144000     7168000
Swap:      2097152      524288     1572864

見やすくするため、-m(MB単位)や-h(自動単位変換)を指定するのが一般的です。

$ free -m  # MB単位で表示
$ free -h  # 読みやすい形式で表示
新人エンジニア
新人エンジニア

freeコマンドを実行したら、数値がバイト単位で表示されて見にくかったです。

先輩エンジニア
先輩エンジニア

その場合は-m-hオプションをつけるといいよ。free -hなら、GBやMB単位で自動変換してくれるから、直感的にメモリ状況を把握しやすい。

メモリの各項目(total, used, free, availableなど)の意味

freeコマンドの出力には、メモリ使用状況を示す複数の項目があります。それぞれの意味を正しく理解することが重要です。

メモリ(Mem:)の項目

項目意味
totalシステムの総メモリ容量
used現在使用中のメモリ(buff/cacheを除く)
free完全に未使用のメモリ
shared他のプロセスと共有されているメモリ
buff/cacheディスクキャッシュやバッファとして確保されているメモリ
available実際に新しいプロセスが使用可能なメモリ
新人エンジニア
新人エンジニア

usedが大きいのですが、freeも少なくて、メモリが足りないんでしょうか?

先輩エンジニア
先輩エンジニア

Linuxはメモリを有効活用するために、空きメモリをキャッシュとして使う仕組みがあるんだ。usedの値だけで判断せず、availableの値を見るのがポイントだよ。

スワップ(Swap:)の項目

項目意味
totalスワップ領域の合計
used使用中のスワップ領域
free空きスワップ領域

スワップ領域が頻繁に使用されている場合、メモリ不足が疑われるため、監視が必要です。

新人エンジニア
新人エンジニア

swapusedが増えているんですが、これは問題ですか?

先輩エンジニア
先輩エンジニア

スワップが頻繁に使われていると、メモリ不足の兆候かもしれない。availableの値が低いなら、メモリ増設や不要なプロセスの整理を検討しよう。

メモリの各項目の意味

Mem:

物理メモリ(RAM)の使用状況を示します。total(総容量)、used(使用中)、free(未使用)、shared(共有)、buff/cache(バッファ/キャッシュ)、available(利用可能)の項目があります。

Swap:

スワップ領域の使用状況を示します。total(総容量)、used(使用中)、free(未使用)の項目があります。スワップが頻繁に使用されている場合、メモリ不足が疑われます。
メモリの各項目の意味
スポンサーリンク

どの数値を見れば良い?メモリ監視のポイント

メモリ使用状況を監視する際、重要なのは以下の数値です。

1. available の値を優先的にチェック

メモリが不足しているかどうかを判断するには、availableの値を最優先で確認します。availableが極端に少ないと、新しいプロセスがスムーズに動作できなくなる可能性があります。

$ free -m
              total        used        free      shared  buff/cache   available
Mem:         16000        8000        2000        1000        6000        7000
新人エンジニア
新人エンジニア

どの数値を見れば、メモリが足りているかわかりますか?

先輩エンジニア
先輩エンジニア

availableの値を見よう。これが低すぎると、新しいプロセスがメモリ不足で動かなくなる可能性がある。

2. swap の使用量をチェック

swapが頻繁に使用されている場合は、メモリ不足が疑われるため、アプリケーションのメモリ消費量を確認する必要があります。

新人エンジニア
新人エンジニア

swapの使用量が増えているのは良くないですか?

先輩エンジニア
先輩エンジニア

スワップが増えていると、物理メモリが足りなくなっている証拠かもしれない。topps aux --sort=-%memでメモリを消費しているプロセスを確認しよう。

3. buff/cache の影響を考慮する

buff/cacheは、ディスクキャッシュとして使用されているメモリですが、必要に応じて解放されるため、usedの値を見てメモリ不足と判断するのは誤りです。

新人エンジニア
新人エンジニア

usedが多いんですが、これは問題ないんですか?

先輩エンジニア
先輩エンジニア

Linuxは未使用メモリをキャッシュとして活用するから、usedだけを見てもダメだよ。availableが十分なら問題ない。

メモリ監視のポイント

availableの値をチェック

新しいプロセスが使用可能なメモリ量を示すavailableの値を優先的にチェックします。この値が極端に少ないと、メモリ不足の兆候です。

swapの使用量を確認

swapの使用量が増えている場合、物理メモリが不足している可能性があります。頻繁なswap使用はパフォーマンス低下につながります。

buff/cacheの影響を考慮

buff/cacheは必要に応じて解放されるため、usedの値だけでメモリ不足と判断するのは誤りです。availableが十分あれば問題ありません。
メモリ監視のポイント
スポンサーリンク

まとめ

  • free -m または free -h を使ってメモリの使用状況を確認する。
  • available の値を最優先でチェックし、メモリが不足していないか判断する。
  • swapの使用量が増えている場合は、メモリ不足の可能性がある。
  • buff/cacheが大きくても、availableが十分なら問題なし。

このように、freeコマンドの各項目を正しく理解し、どの数値をチェックすべきかを押さえることで、メモリの監視やサーバー運用を効率的に行うことができます。

Linux freeコマンドのオプション一覧と詳細解説

freeコマンドは、オプションを組み合わせることで、より詳細なメモリ情報を取得できます。例えば、表示単位の変更やリアルタイム監視の設定が可能です。適切なオプションを使いこなすことで、サーバーのメモリ管理がより簡単になります。

  1. 単位を指定する (-b, -k, -m, -g)
  2. 読みやすいフォーマットで表示する (-h)
  3. 合計メモリを表示する (-t)
  4. 定期的にメモリ使用量を更新する (-s)
  5. 指定回数だけデータを表示する (-c)
  6. freeコマンドのオプションを活用した具体例
  7. まとめ
freeコマンドの主要オプション

単位指定 (-b, -k, -m, -g)

メモリの表示単位をバイト、キロバイト、メガバイト、ギガバイトで指定できます。

読みやすい形式 (-h)

自動的に適切な単位(MB、GB)に変換して表示します。

合計メモリ表示 (-t)

物理メモリとスワップメモリの合計値を表示します。

定期更新 (-s)

指定した間隔(秒数)ごとにメモリ使用状況を更新して表示します。
freeコマンドの主要オプション
スポンサーリンク

単位を指定する (-b, -k, -m, -g)

メモリの表示単位を指定するオプションです。デフォルトではキロバイト単位ですが、MBやGB単位で表示すると見やすくなります。

free -b   # バイト単位
free -k   # キロバイト単位(デフォルト)
free -m   # メガバイト単位
free -g   # ギガバイト単位
新人エンジニア
新人エンジニア

freeコマンドの結果がバイト単位で表示されていて、桁が多くて見にくいです。

先輩エンジニア
先輩エンジニア

-mオプションを使うとMB単位で表示できて、直感的に把握しやすくなるよ。例えば、free -mを使うと、物理メモリが何MB使われているかがわかりやすくなる。

読みやすいフォーマットで表示する (-h)

-hオプションを使うと、MBやGB単位で自動的に表示され、数値が見やすくなります。

free -h
新人エンジニア
新人エンジニア

MBとかGBを指定しなくても、自動で単位を切り替える方法はありますか?

先輩エンジニア
先輩エンジニア

free -hを使えば、自動で適切な単位(MBやGB)に変換してくれるよ。容量の大きなサーバーだとGB単位の方が見やすいから便利だね。

合計メモリを表示する (-t)

-tオプションを使うと、物理メモリとスワップメモリの合計値が表示されます。

free -m -t
新人エンジニア
新人エンジニア

freeの出力に、メモリとスワップの合計がないんですが、まとめて確認する方法はありますか?

先輩エンジニア
先輩エンジニア

-tオプションを使うと、メモリとスワップの合計値が表示されるよ。free -m -tみたいに使うと、合計メモリ量を一目で確認できる。

定期的にメモリ使用量を更新する (-s)

-sオプションを使うと、指定した間隔(秒数)ごとにメモリ使用状況を更新して表示できます。

free -m -s 5  # 5秒ごとにメモリ使用状況を更新
新人エンジニア
新人エンジニア

メモリ使用量の変化をリアルタイムで監視するにはどうすればいいですか?

先輩エンジニア
先輩エンジニア

free -s 5を使えば、5秒ごとにメモリ状況が更新されるよ。負荷テスト時や、異常なメモリ消費が発生していないか監視するのに便利。

スポンサーリンク

指定回数だけデータを表示する (-c)

-cオプションを使うと、指定した回数だけメモリ情報を更新し、出力した後に終了します。

free -m -s 3 -c 5  # 3秒ごとに5回表示した後、終了
新人エンジニア
新人エンジニア

ずっと表示を続けるのではなく、一定回数だけ更新して終了する方法はありますか?

先輩エンジニア
先輩エンジニア

-cオプションを使えば、指定回数だけ更新して終了できる。例えば、free -s 3 -c 5なら、3秒ごとに5回更新して自動的に終了するよ。

freeコマンドのオプションを活用した具体例

1. free -m を使って手軽にメモリ確認

MB単位でメモリの使用状況を確認する最も基本的な使い方です。

free -m
新人エンジニア
新人エンジニア

メモリの使用状況を、サーバーにログインするたびに確認したいんですが、簡単な方法はありますか?

先輩エンジニア
先輩エンジニア

.bashrcalias fm='free -m'を追加しておくと、fmと打つだけでMB単位のメモリ情報を確認できるよ。

2. watch free -h でリアルタイム監視

一定間隔でfreeコマンドを実行し、メモリの変化をリアルタイムで監視できます。

watch -n 2 free -h  # 2秒ごとにメモリ状況を更新
新人エンジニア
新人エンジニア

メモリ使用量の変化をリアルタイムで観察する方法はありますか?

先輩エンジニア
先輩エンジニア

watch -n 2 free -hを実行すると、2秒ごとにメモリの状態が更新される。監視しながら、どのプロセスがメモリを消費しているかtopと併用するといいね。

3. free -s 5 を使った定期的なメモリ監視

負荷テストやメモリリークの監視時に、一定間隔でメモリ使用状況を記録する場合に便利です。

free -m -s 5 > memory_log.txt  # 5秒ごとに記録し、ファイルに保存
新人エンジニア
新人エンジニア

メモリ使用量を定期的に記録して、後で分析したいんですが、良い方法はありますか?

先輩エンジニア
先輩エンジニア

free -m -s 5 > memory_log.txtを使えば、5秒ごとにメモリ使用量を記録できるよ。あとでログを確認すれば、どのタイミングでメモリが増えたのか分析しやすくなる。

freeコマンドのオプション活用例
スポンサーリンク

まとめ

  • freeコマンドのオプションを活用することで、より詳細なメモリ情報を取得できる。
  • -m-hを使うと、見やすい単位でメモリ状況を表示できる。
  • -sオプションで定期的に更新し、-cを併用すると一定回数で終了できる。
  • watchコマンドと組み合わせると、リアルタイムで監視可能。

適切なオプションを活用することで、Linuxのメモリ管理をより効率的に行うことができます。

Linuxのメモリ使用率を効率的に監視する方法

Linuxのメモリ使用率を効率的に監視するには、freeコマンドを定期的に実行し、記録・分析することが重要です。単発のチェックだけでは一時的な変動しか把握できないため、スクリプトやcronを活用して自動監視することで、長期的なメモリ傾向や異常を検知できます。

  1. 定期的にfreeコマンドを実行する方法
  2. スクリプトを使ってメモリ使用量を記録する方法
  3. アラート設定でメモリ不足を防ぐ(cron + free)
  4. cronに登録して定期監視
  5. まとめ
効率的なメモリ監視方法
スポンサーリンク

定期的にfreeコマンドを実行する方法

freeコマンドはオプションを指定することで、一定間隔ごとにメモリ使用量を自動更新することが可能です。

リアルタイムでメモリ変化を監視

free -m -s 5

このコマンドは5秒ごとにメモリ使用状況を表示し続けます。手動で監視する場合に便利です。

新人エンジニア
新人エンジニア

メモリ使用率が急に増えるときがあるんですが、どうやって確認すればいいですか?

先輩エンジニア
先輩エンジニア

free -m -s 5を使えば、5秒ごとにメモリ使用状況が更新されるから、メモリの変化をリアルタイムで観察できるよ。

watchコマンドを使った継続監視

watch -n 5 free -h

この方法では、2秒ごとにfree -hの出力が更新されるため、視覚的にメモリの推移を確認できます。

新人エンジニア
新人エンジニア

ずっと画面を見ていないといけないのは不便ですね…

先輩エンジニア
先輩エンジニア

それならwatchコマンドを使うといいよ。watch -n 5 free -hを実行すれば、5秒ごとにメモリ情報が自動更新されるから、異常がないか継続的に確認できる

スクリプトを使ってメモリ使用量を記録する方法

メモリの使用量をログに記録し、後から分析するには、スクリプトを作成して定期的に実行するのが有効です。

ログ取得スクリプト

以下のシェルスクリプトを作成し、メモリ使用量を定期的に記録できます。

#!/bin/bash
LOGFILE="/var/log/memory_usage.log"
echo "$(date '+%Y-%m-%d %H:%M:%S') $(free -m)" >> $LOGFILE

このスクリプトをcronジョブに登録すると、自動的にログが保存されます。

新人エンジニア
新人エンジニア

メモリ使用状況を後で分析するために、定期的にログを残したいんですが、どうすればいいですか?

先輩エンジニア
先輩エンジニア

上のスクリプトを使えば、実行するたびにmemory_usage.logにメモリの状態を記録できる。これをcronに設定すると、自動でログを取れるようになるよ。

スポンサーリンク

アラート設定でメモリ不足を防ぐ(cron + free)

メモリ使用率が一定の閾値を超えた場合に、アラートを送信する仕組みを構築すると、障害発生前に対策が取れます。

閾値を設定してメール通知するスクリプト

以下のスクリプトを実行し、availableメモリが500MB未満になった場合にアラートメールを送ることができます。

#!/bin/bash
THRESHOLD=500
AVAILABLE_MEM=$(free -m | awk '/Mem:/ {print $7}')

if [ "$AVAILABLE_MEM" -lt "$THRESHOLD" ]; then
    echo "Warning: Low memory! Available: ${AVAILABLE_MEM}MB" | mail -s "Memory Alert" admin@example.com
fi
新人エンジニア
新人エンジニア

メモリが足りなくなったら、自動的に通知を受け取る方法はありますか?

先輩エンジニア
先輩エンジニア

上のスクリプトをcronに設定すれば、メモリが少なくなったときにメールで警告を送ることができるよ。

cronに登録して定期監視

スクリプトを定期的に実行するには、crontabに以下の設定を追加します。

*/5 * * * * /path/to/memory_alert.sh

これにより、5分ごとにメモリ状況をチェックし、閾値を下回った場合にアラートを送信します。

新人エンジニア
新人エンジニア

スクリプトを定期的に実行するにはどうすればいいですか?

先輩エンジニア
先輩エンジニア

crontab -eで編集して、上の設定を追加すれば、5分ごとに自動でスクリプトが実行されるよ。

まとめ

  • free -m -s 5watch コマンドを使うと、リアルタイムでメモリ使用量を監視できる。
  • シェルスクリプトを作成し、ログを定期的に記録すると、メモリの推移を後から分析できる。
  • cronを活用して定期的にスクリプトを実行し、メモリ不足時にアラートを送ることで、障害を未然に防ぐことが可能。

このように、freeコマンドを効果的に活用し、スクリプトやcronと組み合わせることで、Linuxのメモリ管理をより効率的に行うことができます。

スポンサーリンク

Linux freeコマンドに関するよくある質問(FAQ)

freeコマンドの出力には、メモリの使用状況を示すさまざまな項目が含まれていますが、その意味を正しく理解することが重要です。特に「swap」「usedとavailableの違い」「cachedやbuffers」など、よくある疑問について解説します。

  1. 「free」の出力でswapが表示されるがこれは何?
  2. usedとavailableの違いは?どの値をチェックすれば良い?
  3. 「cached」や「buffers」は何を意味するのか?

「free」の出力でswapが表示されるがこれは何?

freeコマンドの出力には、物理メモリ(RAM)とは別にSwapの項目が表示されます。

Swapとは?

Swapは、物理メモリが不足した際に、一時的にディスク上の領域を仮想メモリとして使用する仕組みです。メモリ不足時にデータを退避できるため、システムの安定性向上に役立ちますが、ディスクI/Oが発生するため、使用量が増えるとパフォーマンスが低下します。

$ free -m
              total        used        free      shared  buff/cache   available
Mem:         16000        8000        2000        1000        6000        7000
Swap:         2000         500        1500
新人エンジニア
新人エンジニア

swapって何のためにあるんですか?RAMの代わりになりますか?

先輩エンジニア
先輩エンジニア

swapはメモリが不足したときの一時的な逃げ道だけど、RAMの代わりにはならないよ。swapが増えるとディスクI/Oが発生して、システムが遅くなるから、swapの使用量が増えてきたら対策を考えた方がいい。

新人エンジニア
新人エンジニア

swapの使用量を減らすにはどうすればいいですか?

先輩エンジニア
先輩エンジニア

まずは不要なプロセスを終了して、メモリの空きを増やす。それでも足りなければ、メモリを増設するか、swapの設定を調整するといい。

Swapとは?

Swapの役割

Swapは、物理メモリが不足した際に、一時的にディスク上の領域を仮想メモリとして使用する仕組みです。システムの安定性向上に役立ちますが、過度の使用はパフォーマンス低下につながります。

Swap使用の影響

Swapが頻繁に使用されると、ディスクI/Oが増加し、システムの応答性が低下します。freeコマンドでSwap使用量を監視し、増加傾向が見られる場合は対策が必要です。
Swapとは?
スポンサーリンク

usedとavailableの違いは?どの値をチェックすれば良い?

freeコマンドの出力には、usedavailableの2つの項目があり、どちらを見るべきか混乱することがあります。

usedとavailableの違い

  • used
    実際にアプリケーションが使用しているメモリ量(ただし、バッファやキャッシュは含まない)
  • available
    新しいプロセスが利用できるメモリ量(キャッシュされているメモリも含め、解放可能なメモリ)
新人エンジニア
新人エンジニア

usedの値が大きいとメモリが足りないってことですか?

先輩エンジニア
先輩エンジニア

違うよ。Linuxは未使用のメモリをキャッシュとして活用するから、usedが多くても問題ない場合が多い。availableの値をチェックして、これが少なくなってきたらメモリ不足を疑うべきだね。

新人エンジニア
新人エンジニア

じゃあ、availableの値が500MB以下になったらヤバいですか?

先輩エンジニア
先輩エンジニア

そうだね。availableが極端に減ると、swapが使われ始めて、システムの動作が遅くなる可能性がある。負荷の高いサーバーなら、1GB以上は確保した方がいい。

usedとavailableの違い

used

実際にアプリケーションが使用しているメモリ量を示します。ただし、バッファやキャッシュは含まれません。

available

新しいプロセスが利用できるメモリ量を示します。キャッシュされているメモリも含め、解放可能なメモリ量を表します。

メモリ不足を判断する際は、usedではなくavailableの値をチェックすることが重要です。availableが極端に少なくなると、システムのパフォーマンスが低下する可能性があります。
usedとavailableの違い
スポンサーリンク

「cached」や「buffers」は何を意味するのか?

freeコマンドの出力には、buff/cacheという項目があります。これは、Linuxがディスクアクセスを高速化するために、未使用メモリをキャッシュとして活用している領域を示しています。

cachedとbuffersの違い

項目意味
buffersディスクI/O用のバッファ
cachedファイルキャッシュに使用されているメモリ
新人エンジニア
新人エンジニア

buff/cacheが大きいんですが、これは問題ないですか?

先輩エンジニア
先輩エンジニア

問題ないよ。Linuxは未使用のメモリをキャッシュに活用するから、buff/cacheの値が大きくても正常な動作だよ。メモリが必要になったら、このキャッシュは自動的に解放される。

新人エンジニア
新人エンジニア

buff/cacheの値が大きすぎると、メモリが足りなくなることはありますか?

先輩エンジニア
先輩エンジニア

基本的にはないよ。でも、availableの値が少なくなってきたら、キャッシュをクリアすることでメモリを確保できる。sync; echo 3 > /proc/sys/vm/drop_caches を実行すればキャッシュを手動で解放できるけど、通常は必要ない。

cachedとbuffersの意味
ゴリタンが愛用しているLinuxの教科書たち
https://amzn.to/4hBQa2y
https://a.r10.to/hkpc1F

この記事も参考になるかも!
この記事を書いた人!

ゴリタン

インフラエンジニアとして、ネットワークとサーバーの運用・保守・構築・設計に幅広く携わり、
現在は大規模政府公共データの移行プロジェクトを担当。

CCNPやLPICレベル3、AWSセキュリティスペシャリストなどの資格を保有しています。

あなたにオススメの広告
スポンサーリンク
Linux教科書