Rain WikiWindows · Linux · Android

LinuxのSwap領域

概念すべての Linux ディストリビューション削除して安全: いいえ

Swapとは、Linuxカーネルがメモリのあふれ先として使用するディスク領域のことです。使用頻度の低いメモリページをそこに移動させることで、アクティブな作業のためにRAMを空けておけます。専用パーティションまたはSwapファイルとして存在し、free -hコマンドやswapon --showコマンドで確認できます。

1Swapが依然として有用な理由

十分なRAMがある場合でも、Swapがあればカーネルはアイドル状態のページをメモリ外へ移動でき、Out-of-Memory Killerがプロセスを停止させる前のバッファとして機能します。ただし、頻繁に激しいスワップが発生する場合は、マシンのRAMを増設するか、ワークロードを減らす必要があります。

2Swappiness

カーネル設定のvm.swappiness(0〜200、デフォルトは60)は、ファイルキャッシュを破棄するのと比較して、カーネルがどの程度積極的にスワップを行うかに影響します。値を低くすると、アプリケーションのメモリがRAM内に長く保持されます。値の確認には sysctl vm.swappiness を使用し、永続的な設定は /etc/sysctl.d/ 以下のファイルで行います。

3Swapファイル

Swapファイルは作成後に mkswap でフォーマットし、swapon で有効化します。再起動後も有効にするには /etc/fstab に追記します。パーミッションは 600 に設定する必要があります。

2 GBのSwapファイルを追加する方法

  1. ファイルを作成: sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
  2. アクセス権を制限: sudo chmod 600 /swapfile
  3. フォーマット: sudo mkswap /swapfile
  4. 有効化: sudo swapon /swapfile
  5. 永続化: '/swapfile none swap sw 0 0' という行を /etc/fstab に追加する
  6. 確認: swapon --show および free -h

注意点

  • Btrfs上でSwapファイルを使用するには特別な準備(コピーオンライトの無効化)が必要です。各ディストリビューションのガイドに従ってください。
  • /etc/fstab の記述を誤るとシステムが起動しなくなる可能性があるため、再起動前に必ず行を確認してください。

出典

  1. swapon(8) man7.org
  2. mkswap(8) man7.org
  3. free(1) man7.org
  4. /proc/sys/vm に関するドキュメント (kernel.org) kernel.org

最終確認: