クラウドやVPS環境でOSがインストールされているインスタンスを利用する場合SWAP領域が無効になっている場合がある、無効になっているなら有効にすればよい。スワップがない点はリスクです。メモリを大量に使う処理(DB、大量のPHPプロセスなど)が走るとクラッシュする可能性があります。

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab

🌱 メモリについて 初級~中級者向け(日本語)

1. さくらのナレッジ

  • https://knowledge.sakura.ad.jp/
  • 日本語でLinuxやメモリ関連の記事が多く、実用的な内容が豊富。
  • 「freeコマンド」「swapの追加」など実用例も。

2. Qiita

3. Zenn

  • https://zenn.dev/
  • Qiitaに似た記事投稿サイト。Linuxパフォーマンスやメモリ運用に関する読みやすい記事多数。

🧠 メモリの役割とは?

1. メインメモリ(RAM)

  • コンピュータの「作業机」にたとえられます。
  • OSやアプリケーションが実行時にデータを一時的に置いておく領域です。
  • 高速にアクセスできる反面、容量は限られている(例:4GB、8GBなど)。

2. 用途別分類

種類説明
UsedOSやアプリが使用中のメモリ。
Free何にも使われていない領域(Linuxでは意外と少ない)。
Buffer / Cacheファイルやディスクアクセスを高速化するための一時的なキャッシュ。OSが賢く使ってくれる。
Shared複数プロセスで共有して使うメモリ(tmpfs等)。
Availableアプリが使えると見なせる実質の空き(free + 解放可能なcache/buffer)。

💾 SWAP(スワップ)とは?

1. 役割

  • RAMが足りなくなったときに、一時的にディスクに退避する領域
  • RAMよりはるかに遅いが、メモリ不足によるクラッシュを防ぐ保険的な役割
  • Linuxでは、/swapfile やパーティションとして設定される。

2. SWAPの使われ方(例)

  • アイドル状態のプロセス(例えば長時間使ってないCLIエディタなど)がスワップに移され、アクティブなアプリにRAMを優先配分
  • メモリフル時に、OOM Killer(プロセス強制終了)を回避する。

3. メリット・デメリット

項目メリットデメリット
SWAPありメモリ不足時でもシステムが継続アクセスが遅くなる(ディスクI/O)
SWAPなし遅延がない(高速)メモリ不足時に落ちる(OOM)

🧮 SWAPのサイズの目安

RAM容量推奨スワップサイズ
~2GB2倍程度(最大4GB)
4GB同等または1.5倍
8GB以上同等以下でも可(軽めの用途なら0でもOK)
SSD使用時小さめ推奨(I/O劣化を避ける)

※ ただし最近のサーバでは、**「メモリが十分あるならSWAPは最小 or 0」**という考え方も増えています。


🔍 SWAPの状態を確認するコマンド

bashコピーする編集するfree -h         # スワップ使用状況をMB/GB単位で確認
swapon -s       # 現在のスワップの詳細
cat /proc/swaps # スワップの実態(ファイル or パーティション)

⚙️ SWAPを設定・無効化する方法

1. スワップファイルの作成(例:1GB)

bashコピーする編集するsudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

起動時に有効化:

bashコピーする編集するecho '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab

2. スワップを一時的に無効化

bashコピーする編集するsudo swapoff -a

3. 完全削除する場合

bashコピーする編集するsudo rm /swapfile
# /etc/fstab から swapfile の行も削除

⚖️ どんなときにSWAPが必要か?

状況SWAPの必要性
メモリが少ないサーバ(1〜4GB)必要(クラッシュ回避)
Webサーバなどで短期的に負荷が上下するあった方がよい
コンテナ(Dockerなど)できればスワップ制限も設定
デスクトップ用途(Ubuntuなど)通常はスワップあり
RAMが潤沢(16GB以上)で用途も軽いSWAPなしでも可

🧪 SWAPの挙動を調整する:swappiness

bashコピーする編集するcat /proc/sys/vm/swappiness
  • デフォルトは 60(0〜100)。
  • 数値が高いと「すぐスワップ」、低いと「RAM優先」。
  • 例:軽量サーバでは 10〜20 にすることも。
bashコピーする編集するsudo sysctl vm.swappiness=10

🔚 まとめ

用語意味
RAM作業中のデータを高速に処理する領域(高価・高速)
SWAPRAM不足時の避難先(安価・遅い)
swappinessスワップ使用の積極性を調整するパラメータ
OOMメモリ不足でプロセスが強制終了する現象