2026年5月29日

2026年5月29日

スワップ領域の作成と有効化の手順

はじめに

スワップ領域は物理メモリ (RAM) が不足したときに、一時的にディスクをメモリの代わりとして使う仕組みです。VPSやクラウドインスタンスではスワップが最初から無効なケースも多く、突発的なメモリ不足で OOM Killer が走るのを避けるために自分で用意することがよくあります。

本記事ではスワップファイルの作成、mkswapswapon による有効化、/etc/fstab への登録、swappiness のチューニングまでを解説します。

症状・背景

スワップ領域 が必要になる主な場面:

  • 1〜2GB程度の小規模VPSでメモリ不足が起きるとき
  • OOM Killer の発生を抑えたいとき
  • バッチ処理で一時的に大量メモリが必要なとき
  • ハイバネーション (休止状態) を使いたいとき

手順・設定方法

ステップ1: 現在のスワップ確認

# 現在のスワップ状態
swapon --show
free -h

# /proc 経由でも確認可能
cat /proc/swaps

ステップ2: スワップファイルを作成

# 2GBのスワップファイルを作成 (fallocateが速い)
sudo fallocate -l 2G /swapfile

# fallocateが使えない場合はddで
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

# 所有者・権限を厳格に
sudo chmod 600 /swapfile

# スワップフォーマット
sudo mkswap /swapfile

ステップ3: スワップを有効化

# 有効化
sudo swapon /swapfile

# 確認
swapon --show
free -h

# 永続化 — /etc/fstab に追記
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

ステップ4: チューニングと無効化

# swappiness 確認 (0〜100, 大きいほどスワップしやすい)
cat /proc/sys/vm/swappiness

# サーバー用途では10〜20が推奨
sudo sysctl vm.swappiness=10

# 永続化
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.d/99-swap.conf

# スワップを無効化
sudo swapoff /swapfile

# 削除する場合
sudo rm /swapfile  # fstabからも削除を忘れずに

注意事項

  • スワップを多用するとI/O負荷が上がり全体が遅くなります。あくまでメモリ不足時の保険として
  • SSDの場合、頻繁なスワップは寿命を縮める要因になり得るので swappiness を下げるのが定石
  • スワップファイルは権限600必須。誰でも読める状態だとメモリ内容が漏洩する恐れがあります
  • VPSによってはスワップ作成が制限されているプランもあるので事前に確認してください

まとめ

1. 確認: swapon --showfree -h で現状把握

2. 作成: fallocatechmod 600mkswap の3手順

3. 有効化: swapon で即時、/etc/fstab で永続化

4. 調整: vm.swappiness=10 でスワップ優先度を抑制

5. 無効化: swapoff の後にファイル削除とfstab整理

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ