サーバー ソフトウェア 公開日 2026.04.28 更新日 2026.10.26

サーバーのスワップとは?メリット・デメリットと、足すべき場面の考え方

サーバーのスワップとは何かを、RAM不足時の退避先として整理しつつ、メリット、デメリット、遅くなる理由、どんな場面で足すべきかまで初心者向けに解説します。

目次(40項目)

先に要点

  • スワップ は、RAM が足りないときにディスクを一時的な退避先として使う仕組みです。
  • メリットは、少量でもあると OOM による即死を避けやすいことです。
  • デメリットは、RAM よりかなり遅いので、スワップに頼り始めると応答が重くなりやすいことです。
  • つまり、スワップは 「速くするための設定」 ではなく、落ちにくくするための保険として考える方が自然です。

サーバーを触っていると、swap を 1GB 追加した方がいい OOM を避けるために swap を作る といった話が出てきます。
でも、これが何をしているのかが曖昧なままだと、足せば安心なのか 遅くなるのか そもそも必要なのか が判断しにくいです。

今回は、サーバーの スワップ を メモリ不足時の退避先 として整理しつつ、何が助かるのか、何がつらいのか、どんな場面なら足してよいかまで、実務目線で整理します。

スワップとは何か

スワップは、物理メモリである RAM が足りなくなったときに、あまり使っていないメモリページをディスクへ逃がしてしのぐ仕組みです。
Red Hat のドキュメントでも、swap space は RAM がいっぱいになったときに使われるもので、物理メモリの代替ではないと説明されています。

RAM 速いが 量に限りがある 使用中のページ スワップ ディスク上 遅いが逃がせる 退避したページ 赤:RAM がいっぱい → 逃がす 緑:必要になったら戻す(遅い)

ざっくり言うとこうです。

RAM

速いが量に限りがある

アプリが普段使うメモリです。

スワップ

遅いが退避先として使える

ディスクの一部を、あふれたページの逃がし先にします。

Linux カーネルの説明でも、swappiness はスワップとファイルシステムページングの相対的な I/O コストのバランスを決める設定として説明されていて、スワップはあくまでメモリ管理の一部です。

スワップは追加メモリではない

つまり、スワップは 追加メモリそのもの ではありません。遅いけれど、落ちるよりはましな逃がし先 です。

何のためにあるのか

スワップの一番大きい役割は、メモリが足りない瞬間に即座に落ちないようにすることです。

たとえば次のような場面では、一時的にメモリ使用量が跳ねます。

更新

パッケージ更新

圧縮

バックアップ圧縮

変換

画像変換

開発

ビルド

アクセス

一時的なアクセス増

RAM の上限 あふれた分をスワップへ 普段 一時的な山 普段 スワップが無いと、山の瞬間に OOM

こういうとき、スワップがまったくないと、メモリがあふれた瞬間に OOM が起きて、プロセスが強制終了されることがあります。
一方、少量でもスワップがあると、その瞬間だけ逃がして持ちこたえられることがあります。

この意味では、スワップは 普段から積極的に使いたいもの というより、いざというときの緩衝材 です。

スワップのメリット

メリット 1

OOM を避けやすくなる

これが一番分かりやすいメリットです。小さめの VPS やメモリ余裕の少ないサーバーでは、少量のスワップがあるだけで、突発的なメモリ不足を越えやすくなります。

メリット 2

短時間のメモリ山をしのぎやすい

常時不足している状態には効きませんが、普段は足りているのに、たまに山が来る ような構成には相性がよいです。たとえば夜間バッチや一時的な再起動直後などです。

メリット 3

小さいサーバーの保険になる

1GB や 2GB の小さな VPS では、ほんの少しの追加処理でも余裕がなくなることがあります。このとき、少量のスワップは 何もしないよりは安全 になりやすいです。

スワップのデメリット

デメリット 1

RAM よりかなり遅い

一番大きいデメリットはここです。Red Hat のドキュメントでも、swap space はハードドライブ上にあり、物理メモリよりアクセスが遅いと整理されています。つまり、スワップに逃がした時点で、メモリアクセスはかなり重くなります。SSD でも RAM よりはずっと遅いので、使えれば同じ ではありません。

デメリット 2

スワップが増えると全体が鈍くなりやすい

アプリが必要なページを RAM ではなくディスクから戻すようになると、I/O 待ちが増えてレスポンスが悪くなります。これが進むと、CPU ではなくメモリ不足とディスク待ちが原因で全体が重く見えることがあります。

デメリット 3

根本的なメモリ不足を隠してしまう

スワップがあると即落ちは避けやすいので、逆に 本当は RAM が足りていない 状態に気づくのが遅れることがあります。

ありがちな失敗

落ちないけれど遅い、という状態で長く運用してしまうのはありがちな失敗です。

どんなときに足す価値があるか

スワップ追加が自然なのは、次のような場面です。

場面 1

小さい VPS で一時的なメモリ山がある

常時 90% 超えではないけれど、更新やビルドでたまにあふれる。この場合は、少量のスワップが保険として効くことがあります。

場面 2

とりあえず OOM だけ先に避けたい

アプリ改修やサーバー増強の前に、まずは即死を防ぎたい。このとき、スワップを入れるのは応急処置としてはありです。

場面 3

ストレージ追加の方が早く、メモリ増設がすぐできない

クラウドや VPS では、メモリ増設より先にスワップファイルを追加した方が手早いことがあります。

スワップ追加は時間を稼ぐ策

ただし、これは 本対応 ではなく 時間を稼ぐ策 と考える方が安全です。

逆に、スワップを足しても解決しにくい場面

場面 1

常にメモリが足りない

平常時からアプリが重く、毎日スワップを大量に使っているなら、根本原因は RAM 不足かアプリ側のメモリ使用です。この場合は、スワップを増やしても遅いままになりやすいです。

場面 2

レイテンシ重視のサーバー

リアルタイム性が重要な処理や、応答の揺れが困る構成では、スワップ使用がそのまま体感悪化につながることがあります。落ちにくさ と 遅延の少なさ のどちらを優先するかは切り分けて考える必要があります。

場面 3

メモリリークを放置している

アプリがメモリを食い続ける状態では、スワップは一時しのぎにしかなりません。むしろ、落ちるまでの時間が延びることで発見が遅れることもあります。

スワップファイルとスワップパーティションは何が違うか

スワップは、専用パーティションでも、スワップファイルでも使えます。
Red Hat のドキュメントでも、dedicated swap partition、swap file、両方の組み合わせが案内されています。

実務ではこう考えると分かりやすいです。

スワップパーティションとスワップファイル

スワップパーティション

  • ディスク設計時に先に切っておく方式

スワップファイル

  • 後から追加しやすい方式

今の VPS やクラウドでは、後から足しやすいスワップファイルの方が扱いやすいことも多いです。

どちらでも本質は同じ

ただし、どちらを選んでも RAM より遅い という本質は変わりません。

swappiness はどう考えるべきか

vm.swappiness は、スワップをどのくらい積極的に使うかのバランス設定です。
Linux カーネルのドキュメントでは、0 から 200 の範囲で、スワップ I/O とファイルシステムページングの相対コストを表すものとして説明されています。

vm.swappiness の範囲 0 200 控えめ 積極的 0 でも完全な無効ではない
0 にしても swap は無効にならない

ここで大事なのは、0 にすれば完全に swap 無効 ではないことです。カーネルドキュメントでも、0 は 一定条件まで swap を開始しない という説明になっています。

また、Red Hat のナレッジベースでも、swappiness は高すぎても低すぎても性能に影響しうるため、少しずつ調整して、普段の負荷条件で試すべきだとされています。

つまり、swappiness は 魔法の高速化つまみ ではありません。
本当に大事なのは、そもそもスワップに頼らない構成にできるかです。

じゃあ結局、入れるべきか

結論をかなり実務寄りに言うと、こうです。

スワップを入れるか

入れてよい

  • 小さいサーバーで
  • 一時的なメモリ山があり
  • OOM だけは避けたい

過信しない方がよい

  • 常時メモリ不足
  • 低遅延が重要
  • アプリのメモリ使用そのものが不健全
あると助かるが、入れたら安心ではない

つまり、スワップは あると助かることがある けれど、入れたら安心 ではありません。

サーバースワップのよくある質問

Q. スワップサイズはどれくらいが適切?

A. 一律の正解はありません。Red Hat の RHEL 9 ドキュメントでは、RAM 2GB 未満なら RAM の2倍、2〜8GB なら RAM と同量、8〜64GB なら少なくとも4GB という目安が示されています(ハイバネーションを使わない場合)。実際に必要な量はワークロード次第なので、この記事のように保険として入れ、使用量を監視しながら調整します。クラウドの仮想マシンはスワップが最初から設定されていないイメージも多いため、起動後に swapon --show などで確認します。

Q. swappiness 値とは?

A. カーネルがどれだけ積極的にスワップを使うか の数値(0-200、従来は0-100)。既定値は60です。最適な値はワークロードで変わるため、Red Hat も少しずつ変えて普段の負荷で試すよう案内しています。一時的に変えるなら sysctl vm.swappiness=10 のように指定し、再起動後も残すには /etc/sysctl.d/ に設定を書きます。

Q. SSD でスワップは問題ない?

A. 動作はしますが、SSD でも RAM よりはるかに遅いので、SSD だから問題なし とは言えません。また、スワップの読み書きが頻繁に続くと SSD への書き込み量も増えるため、常用ではなく保険としての利用にとどめ、使用量を監視します。

Q. データベースサーバーでスワップは?

A. データベースがスワップに頼る状態は避けます。バッファやキャッシュがスワップへ追い出されると、応答が大きく悪化するためです。基本は十分な RAM を確保し、バッファプールなどのメモリ設定を RAM に収まる大きさにします。そのうえで、スワップを無くすか少量だけ残して swappiness を低めにするかは、OOM で落ちるリスクと遅延のどちらを避けたいかで決めます。

Q. zram / zswap とは?

A. メモリ上に圧縮スワップ領域を作る仕組み。ディスクスワップより速い + 多少のメモリ節約。低スペック VPS、Raspberry Pi、コンテナでよく使われます。

Q. Kubernetes でスワップは?

A. 以前はスワップを無効にすることが前提でしたが、Linux ノードのスワップ対応は 1.22 でアルファ、1.28 でベータになり、1.34 で一般提供(stable)になりました。ただし kubelet の既定の動作は NoSwap で、Pod がスワップを使えるのは LimitedSwap を設定した場合だけです。使うかどうかは、メモリの requests / limits の設計とあわせて判断します。

Q. スワップが多く使われていたら何をする?

A. RAM 増設、不要なプロセス停止、アプリのメモリリーク調査、スワップ使用率の高いプロセス特定(top)、OOM Killer の動作確認、で対応。スワップ依存 が長期化すると全体性能劣化。

まとめ

サーバーのスワップは、RAM が足りないときにディスクを退避先として使う仕組みです。
メリットは、少量でもあると OOM を避けやすく、短時間のメモリ山をしのぎやすいことです。

一方で、デメリットは明確です。

  1. RAM よりかなり遅い
  2. 頼り始めると全体が鈍くなりやすい
  3. 根本的なメモリ不足を隠しやすい

なので、スワップは 速くする設定 ではなく、落ちにくくするための保険 として考えるのがいちばん実態に近いです。

関連で読むなら、メモリ不足の落ち方は OOMとは?メモリ不足で処理が落ちる状態を初心者向けに解説、サーバー費や転送費の見方は 帯域コストとは?画像・動画・CDNで請求が膨らみやすい理由 や 転送量課金はどこで増える?クラウド請求書で最初に見るべき項目 もつながります。


参考情報

あとで見返すならここで保存

読み終わったあとに残しておきたい記事は、お気に入りからまとめて辿れます。