スワップファイルを作ってお手軽にスワップを増やす

RAMを大量に必要とするプログラムがあって遅くてもいいから一時的にスワップを増やしてやり過ごすことがあります．また，RAMの少ないマシンでディスクの構成をいじるのが面倒なときにもスワップファイルが使えます．ということで今回RAMが2GBでそこそこあるけど偶に使い切ってしまう(主にchromium!)のでスワップファイルを用意してみました．

スワップファイルを作成します．今回は/var/tmp/swap.imgというファイルで2GB用意しました．

$ sudo install -o root -g root -m 0600 /dev/null /var/tmp/swap.img
$ sudo dd if=/dev/zero of=/var/tmp/swap.img bs=1M count=2048
$ sudo mkswap /var/tmp/swap.img

とりあえずスワップファイルをアドホックに有効にします．

$ sudo swapon /var/tmp/swap.img

．スワップが増えています．

$ swapon -s
Filename Type Size Used Priority
/dev/zram0 partition 254688 80024 5
/dev/zram1 partition 254688 80016 5
/dev/zram2 partition 254688 79940 5
/dev/zram3 partition 254688 79928 5
/var/tmp/swap.img file 2097148 0 -1

一時的に必要な場合はこれで良いのですが，恒久的に利用したい場合はこのままでは再起動後には有効になりません．/etc/fstabに設定を書いて起動時に有効になるようにします．

$ sudo vi /etc/fstab
$ grep -i swap.img /etc/fstab
/var/tmp/swap.img none swap sw 0 0

一旦swapoffでスワップを無効にしてswapon -aでfatabの設定が有効か試します．swapon -aはfstabのスワップの設定を全て有効にします．

$ sudo swapoff /var/tmp/swap.img
$ sudo swapon -a
$ swapon -s
Filename Type Size Used Priority
/dev/zram0 partition 254688 80020 5
/dev/zram1 partition 254688 80016 5
/dev/zram2 partition 254688 79940 5
/dev/zram3 partition 254688 79928 5
/var/tmp/swap.img file 2097148 0 -1

念のため再起動してスワップファイルが有効かも試せばOKです :)

スワップファイルの利用はお手軽ですが，スワップパーティーションに比べると性能は少し落ちるので可能ならスワップパーティーションを利用したほうが良いです．RAMが増設できるならそれが一番です．

環境

$ dpkg-query -W mount
mount 2.27.1-6ubuntu3.6
$ lsb_release -d
Description: Ubuntu 16.04.4 LTS
$ uname -m
aarch64