【スワップ】

swap(スワップ) とは?

最終更新:
💡 使っていないメモリの一部を、一時的に退避

OSがメモリのページをスワップ領域へ退避し、必要時に戻す仕組み。ディスク上の領域などでRAMの空きを確保するが、メモリ不足や速度低下を必ず防げるわけではない。

📌 このページのポイント
メモリのページを退避・復帰 RAM 実行に必要な ページを置く swap領域 退避した ページを保存 退避 読み戻す ディスクの領域や、圧縮RAMなど 退避・復帰が頻発すると速度低下 不足の緩和に使うが、RAMの代替ではない 開始条件と性能は、負荷・設定・保存先による
ページの退避と読み戻しを示す模式図。zramはRAM内へ圧縮して保存し、すべてのswapがディスクとは限らない。
ひよこ ひよこ
swapってメモリと何か関係あるの?
ペンギン先生 ペンギン先生
OSが使っていないメモリのページなどを退避して、RAMの空きを作る仕組みだよ。必要になるとRAMへ戻す。ディスクのスワップ領域が代表的だけれど、LinuxにはRAM内へ圧縮して保存するzramもあるんだ。
ひよこ ひよこ
swapがあればメモリ不足でも大丈夫?
ペンギン先生 ペンギン先生
不足を緩和する助けにはなるけれど、RAMの完全な代わりにはならないよ。ディスクへの退避や読み戻しが頻発すると処理が遅くなる。必要なページの入れ替えに多くの時間を使うスラッシングも起こり得るし、swapを使ってもメモリ不足は起こるんだ。
ひよこ ひよこ
スワップ領域ってどうやって作るの?
ペンギン先生 ペンギン先生
Linuxでは専用パーティションやファイルを用意して有効にする方法があるよ。ファイルシステムによって使えるファイルに利用条件があり、fallocateで作れば必ず使えるとは限らない。作成手順や権限、起動時の設定は使うOSの資料で確認しよう。
ひよこ ひよこ
swapをどれくらいの大きさにすればいいの?
ペンギン先生 ペンギン先生
RAM容量だけで一律には決まらないよ。アプリが使うメモリ、負荷、保存先、休止状態を使うかを考えるんだ。休止用の容量や対応条件もOSに合わせて確認する。使用量と性能を見て、必要な容量を判断しよう。
ひよこ ひよこ
swappinessを下げれば速くなる?
ペンギン先生 ペンギン先生
環境次第だよ。現在のLinuxでは0〜200で、スワップとファイルのページ回収の相対的なI/Oコストを表す。カーネルの既定は60で、低い値はスワップ側のI/Oを高コストと扱う。0もスワップ禁止ではないんだ。RAMの何%を使ったら開始するという設定ではなく、負荷や保存先に合わせて実測するものだよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「swap」って出てきたら「メモリの一部を別の領域へ退避して、必要時に戻す仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「swap」 = 交換する
💬 英語で交換するという意味。OSの文脈では、メモリの内容を退避したり戻したりする仕組みを指すよ。

参考資料

← 用語集にもどる