Zswapを有効にして少ないメモリを乗り切ろう

Posted by nogajun - 2018/02/06

_

以前、書いたZramを有効にして少ないメモリを乗り切ろうの続編です。

某所で少ないメモリのマシンをなんとか頑張って使う話が出てたので書いておきます。

参考

Zswapの設定方法

まずはカーネルがZswapに対応しているか調べます。「CONFIG_ZSWAP=y」と表示されれば有効になっています。

 $ cat /boot/config-`uname -r` | grep -i zswap
 CONFIG_ZSWAP=y

grubにZswapを有効にするカーネルパラメータ設定を書き込みます。

 $ sudo editor /etc/default/grub

 # quietのあとにzswap.enabled=1 zswap.compressor=lz4を追記
 GRUB_CMDLINE_LINUX_DEFAULT="quiet zswap.enabled=1 zswap.compressor=lz4"

パラメータは「zswap.enabled=1」はZswapを有効にする、「zswap.compressor=lz4」は圧縮形式をlz4に指定するという意味です。 追記したらgrubの設定をアップデートします。

 $ sudo /usr/sbin/update-grub

続いてinitramfsでlz4カーネルモジュールを読み込む設定を追記します。 こちらも追記したらupdate-initramfsでアップデートします。

 $ sudo sh -c "echo lz4 >> /etc/initramfs-tools/modules"
 $ sudo sh -c "echo lz4_compress >> /etc/initramfs-tools/modules"
 $ sudo /usr/sbin/update-initramfs -u

これでマシンを再起動すれば終わりです。

設定の確認

再起動してsysfsの/sys/module/zswap/parameters/enabledにYと出ていれば有効になっています。

 $ cat /sys/module/zswap/parameters/enabled
 Y

dmesgかjournalctlに、こんな感じの行が出ていればlz4が使われています。

 # journalctl -k | grep -i zswap
 2月 06 14:30:48 mate kernel: zswap: loaded using pool lz4/zbud

まとめ

当たり前の話ですがZswapを有効にしたからといってメモリが増えるわけでもなく、メモリが少なくなったらいきなり落とされたりや固まってしまうのが、操作できるぐらいで緩やかに耐えてくれる感じになるだけです。

とはいえ、最近はメモリも高騰してて買うのも躊躇しますしやっておくと安心感にはつながるので試してみてはいかがでしょうか。