zswapを有効化する
参考リンク
UbuntuにおけるSwapのFAQはここ https://help.ubuntu.com/community/SwapFaq
zswapについてはこちら https://www.kernel.org/doc/html/v5.13/vm/zswap.html#
ここのBlogを参考にzswapの設定をする https://ubuntu.com/blog/how-low-can-you-go-running-ubuntu-desktop-on-a-2gb-raspberry-pi-4
設定手順
/boot/firmware/cmdline.txtに設定を追加する
最初に現在の内容
ubuntu@ubuntu:~$ cat /boot/firmware/cmdline.txt
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait fixrtc quiet splash
追加
ubuntu@ubuntu:~$ sudo sed -i -e 's/$/ zswap.enabled=1/' /boot/firmware/cmdline.txt
追加後
ubuntu@ubuntu:~$ cat /boot/firmware/cmdline.txt
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait fixrtc quiet splash zswap.enabled=1
再起動して設定を反映
有効時のパラメータ
ubuntu@ubuntu:~$ grep -R . /sys/module/zswap/parameters
/sys/module/zswap/parameters/same_filled_pages_enabled:Y
/sys/module/zswap/parameters/enabled:Y
/sys/module/zswap/parameters/max_pool_percent:20
/sys/module/zswap/parameters/compressor:lzo
/sys/module/zswap/parameters/zpool:zbud
/sys/module/zswap/parameters/accept_threshold_percent:90
圧縮形式とアロケータの変更
圧縮形式はデフォルトのlzoだと軽いが代わりに圧縮率が低いので変更する。圧縮率がいいのはzstdだが重いので、lzoより圧縮率が高くてzstdより軽量なlz4にする。 アロケータはデフォルトのzbudだとページごとに2つのオブジェクトを格納する。圧縮率を高めるためにページごとに3つのオブジェクトを格納できるz3foldに変更。
sudo -i
echo lz4 >> /etc/initramfs-tools/modules
echo z3fold >> /etc/initramfs-tools/modules
変更したらinitramfsを更新
update-initramfs -u
cmdline.txtにも追加
sudo sed -i -e 's/$/ zswap.compressor=lz4/' /boot/firmware/cmdline.txt
sudo sed -i -e 's/$/ zswap.zpool=z3fold/' /boot/firmware/cmdline.txt
再起動して設定が正しく反映されているかチェック
ubuntu@ubuntu:~$ grep -R . /sys/module/zswap/parameters
/sys/module/zswap/parameters/same_filled_pages_enabled:Y
/sys/module/zswap/parameters/enabled:Y
/sys/module/zswap/parameters/max_pool_percent:20
/sys/module/zswap/parameters/compressor:lz4
/sys/module/zswap/parameters/zpool:z3fold
/sys/module/zswap/parameters/accept_threshold_percent:90