スワップ領域をファイル化

ここに書かれた内容は、sudo apt install dphys-swapfile (導入)、sudo apt purge dphys-swapfile (除去)でも可能。以下は、マニュアルで設定する場合を示す。私はマニュアル派。


Ubuntuをインストールする時、スワップ領域を指定しなければ/swapfileが自動的に作成される様子だが、ここではマニュアルでの対応を整理する。スワップ領域をファイル化しても、SSD/MicroSD/eMMC等のNANDフラッシュメモリ系ストレージのウェアレベリング効果は上がらないというのが定説のようではある。しかし、ウェアレベリングの実装はデバイスマターであり、パーティションで物理的なスワップ領域に区切られるとウェアレベリングが偏る可能性は否定できない。ファイル化するメリットは、ext4ファイルシステム上で調整できる利便性と、TRIMコマンドによる何らかの効果を期待できる点にあるが、ケースバイケースであろう。なお、ラズパイ上でDarknetを実行する時、このスワップファイルを用意しておかないと、OOMキラーが発動するケースがある。

/swapfile 実体を作る。

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 ## 1GBの場合
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

/etc/fstab を編集する。

### SSDへのスワップの例
/swapfile swap swap sw,discard 0 0

適用

sudo mount -a



/etc/initramfs-tools/conf.d/resumeがある場合、initrdの⼀部を処置し更新しないと、OS起動が30秒遅くなる。
/etc/initramfs-tools/conf.d/resume:

RESUME=/swapfile

initrd更新:

update-initramfs -u -k all

参考情報:ここ