メモリ
中級

スワッピング(スワッピング)

メモリ不足時に物理 RAM の内容をストレージ(スワップ領域 / ページファイル)に退避させる仕組み。性能は大幅劣化するが OOM クラッシュを回避する。

0 回閲覧
0 いいね
2026/5/2 更新
関連タグ
メモリ
Linux
Windows
swap
ページファイル

概要

スワッピング(Swapping / Paging)は、メモリ(RAM)が不足した時に、使用頻度の低いメモリ内容をストレージ(HDD / SSD)に退避させ、空いた RAM を別用途に使う OS の仕組みを指す。物理 RAM 容量を超えるアプリケーション群を仮想的に同時実行できる「仮想メモリ」の中核技術である。1960 年代の Atlas Computer 由来で、2026 年現在も Linux / Windows / macOS の全主要 OS で必須機能として残る。NVMe SSD の普及で速度ペナルティは大幅に減ったが、それでも RAM の 100-1000 倍遅いため、可能な限り発生させない設計が望ましい。

OS 別のスワップ実装

Linux

# スワップ状況確認
swapon --show
free -h

# swapfile 作成(4GB)
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 永続化
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
設定用途
swap partition伝統的、ディスク末尾配置
swapfile柔軟、サイズ変更容易
ZRAM圧縮スワップ、高速
ZSwapハイブリッド、L1 ZRAM + L2 disk
swappiness(0-100)スワップ積極性、デスクトップは 10、サーバは 60

Windows

# ページファイル状況確認(コントロールパネル / システムプロパティ)
Get-WmiObject Win32_PageFileSetting

# サイズ自動管理 ON / OFF
# システムのプロパティ → 詳細設定 → パフォーマンス設定 → 詳細
  • pagefile.sys: C:\ ルートに自動作成、デフォルトでシステム管理サイズ
  • Memory Compression: Windows 10+ で有効、RAM 内圧縮でスワップ頻度減
  • Reserve Memory: 一部メモリを予約、SSD 寿命対策

macOS

# スワップ使用量確認
sysctl vm.swapusage
# 例: total = 4096.00M used = 156.50M free = 3939.50M

# 場所
ls -la /private/var/vm/swapfile*
  • 動的スワップ: macOS が必要に応じて自動拡張、ユーザ操作不要
  • Memory Pressure: アクティビティモニタで色別に状態表示(緑 / 黄 / 赤)

ZRAM(圧縮スワップ)

# Ubuntu 22.04+ / Fedora 等で標準利用可
sudo modprobe zram
echo zstd | sudo tee /sys/block/zram0/comp_algorithm
echo 4G | sudo tee /sys/block/zram0/disksize
sudo mkswap /dev/zram0
sudo swapon -p 100 /dev/zram0
  • 圧縮アルゴリズム: zstd(高圧縮)/ lz4(高速)
  • 圧縮率: 平均 2-3 倍、テキストデータは 5 倍以上
  • CPU オーバーヘッド: 数 % 程度、SSD スワップより高速

SSD 寿命との関係

  • 書き換え回数: TLC SSD で 600-1500 P/E、Samsung 990 Pro 2TB は 1200 TBW
  • 頻繁なスワップ: 1 日 50 GB 書き込みで 65 年寿命(実用上問題なし)
  • OPTANE(廃番): 1000 万 P/E、スワップに最適だったが Intel が事業停止
  • 対策: 32 GB+ RAM 確保 + ZRAM 併用で物理スワップを回避

用途別の推奨設定

環境RAMswapswappiness
デスクトップ Linux32 GBswapfile 4-8 GB10
ゲーミング Windows32 GBシステム管理自動
サーバ Linux64 GBpartition 16 GB60
AI/ML ワークステーション128 GBswap 32 GB(巨大データ用)5
Mac DTM/動画制作64 GBシステム動的自動

関連用語との違い

用語違い
仮想メモリ概念全体、スワッピングはその実装手法
ページング4KB 単位の細かい交換、スワッピングはプロセス全体
OOM Killerメモリ枯渇時にプロセス強制終了する仕組み
ZRAM圧縮スワップ、ストレージ書込みなし

よくある質問

Q1: 32 GB RAM ならスワップは不要? A: 通常は不要だが、Hibernate(休止状態)に RAM サイズと同等のスワップが必要。Linux で休止使うなら 32-64 GB swap、Windows でハイブリッドスリープなら 16 GB は確保。

Q2: SSD のスワップで寿命は縮む? A: 現代の TLC NVMe SSD では実質無視できる。Samsung 990 Pro 2TB は 1200 TBW、1 日 50 GB スワップでも 65 年。32 GB RAM + 必要時のみスワップなら 100 年以上。

Q3: ZRAM と SSD スワップ、どちらが先に効く? A: 優先度設定(swapon -p)次第。ZRAM を高優先(100)、SSD を低優先(10)にして、まず ZRAM で圧縮、それでも足りなければ SSD へという階層化が定石。

まとめ

  • メモリ不足時に RAM 内容をストレージへ退避 する OS 機能
  • 2026 年も全主要 OS で必須、NVMe SSD で速度ペナルティ減
  • 32 GB+ RAM + ZRAM で物理スワップを回避するのが最新ベストプラクティス
この記事について
カテゴリーメモリ
難易度中級
作成日2026/5/2