This page is a beginner-friendly note about reading free -m output. It focuses on practical signals of memory pressure and what to check next.
free -m の数字を「安心 / 危険」を判断できる形に整理します。
free -m は “Linuxが今どうメモリを使っているか” の要約見た目は表ですが、最初にこの前提だけ揃えると迷いが減ります。
free が小さいと「もうメモリが無いのでは?」と思ってしまうused が大きく見えて「何か暴走してる?」と疑ってしまうLinuxは、空いているメモリを “ムダに空けておく” より、キャッシュとして使って体感を速くすることが多いです。なので free が小さくても、すぐに不足とは限りません。
available(実質的に使える余裕)ここが読めると「本当に危ないか」を判断しやすくなります。
free -m はざっくりこの2行が本体です(-m はMB表示)。
free -m
Mem:(物理メモリ / RAM)いま動いているプログラムやOSが、RAMをどう使っているかです。
Swap:(退避領域)RAMが足りないときに、ディスクへ一部を逃がす領域です。RAMより遅いので、増え始めると体感性能に影響が出やすいです。
列名を「運用で使う言葉」に置き換えます(重要なのは後半2つです)。
total(搭載量)物理メモリの総量です。VPSだと、プラン通りかの確認にも使えます。
used(使っているように見える合計)アプリが使っている分だけでなく、キャッシュなども含むため、ここだけで不足判断しないほうが安全です。
free(完全な未使用)“何にも使っていない” メモリです。Linuxはここを小さく保つことが多いので、これが小さくても即アウトではありません。
shared(共有で使われている分)複数プロセスで共有している領域などが入ります。まずは深追いしなくてOKです(判断には使いにくいことが多いです)。
buff/cache(バッファ / キャッシュ)ディスクI/Oを速くするための “貯金” です。必要になれば、OSがここを削ってアプリへ回します。
available(実質の余裕 ⭐)ここが一番大事です。「いま追加でアプリが使える見込み」を表します(キャッシュを解放できる分も含みます)。
free ではなく available を読む数字の印象に引っ張られやすいので、読む順番を固定します。
available が十分あるかfree は小さいbuff/cache が大きいavailable がそれなりにあるこれは「キャッシュが働いていて健康」になりやすい形です。
available が小さい(減り続ける)この組み合わせは、実際にメモリ圧迫が起きている可能性が高いです。
Swapを見ると不安になりやすいので、ここも判断軸を固定します。
すぐに異常とは限りません。起動直後や一時的な負荷で数MB〜数十MB程度が動くことがあります。
これは注意です。RAMが足りずに、ディスクへ逃がし続けている可能性があります(遅くなる原因になります)。
あります。Swapに置かれているのが “たまたま今使っていない領域” なら、体感に直撃しない場合もあります。なので、次の「増え方」と「swap in/out」を確認します。
数値の絶対値だけでなく、「現象」と「ログ」とセットで見ると判断しやすいです。
メモリ不足で落ちているときは、dmesg に手がかりが残ることがあります。
dmesg -T | tail -n 50
「Out of memory」「Killed process」などが出ていたら、実害としてのメモリ圧迫を疑います。
Swapが “使われているか” だけでなく “出入りが激しいか” を見ます。
vmstat 1 5
si / so(swap in / swap out)が継続して大きいと、入れ替え(スワップ)が起きている可能性が高いです。
「足りないかも」と感じたら、誰が使っているかを早く掴むのが近道です。
ps aux --sort=-%mem | head
上位にいるプロセスが “想定内” か “見覚えのないもの” かで次の行動が決まります。
top も便利top
瞬間的な増加(スパイク)を見たいときに向いています。
systemctl status nginx
systemctl status php-fpm
再起動ループや、直前に落ちた痕跡があるかを確認します(ログは環境で場所が変わります)。
「何MBなら危険?」はサーバーの役割で変わるので、目安は “増え方” に寄せます。
available が 減り続ける → 何かが増殖している可能性vmstat の si/so が継続的に大きい → 体感劣化につながりやすい「一時的に不足して、落ちて戻る」ことがあります。なので、1回だけの結果で結論を急がず、負荷がかかったタイミングでもう一度取ると判断が安定します。
free がほぼ 0 でも大丈夫ですか?A. 可能性としては “大丈夫なことが多い” です。Linuxはキャッシュ(buff/cache)を多めに持つので、free は小さくなりがちです。判断は available を優先します。
used が多い=メモリ不足ですか?A. それだけでは判断しにくいです。used はキャッシュを含むため、available と Swap の動きと合わせて見ます。
A. すぐに緊急とは限りません。問題は “増え続ける” かどうかと、vmstat で swap in/out が継続して出ているかです。
A. dmesg(またはジャーナル)に OOM の痕跡があるかを確認します。「Killed process」などが出ていれば可能性が高いです。