Posted by 每特17劃 on 2022-09-03

試用 zswap

根據 Pellaeon 的 blog 分享的資訊:

原本要安裝 systemd-swap ,就改為直接用 tmpfiles.d 來設定。

主要調整參數為:

  • /sys/module/zswap/parameters/max_pool_percent => 30
  • /proc/sys/vm/swappiness => 100

編輯 /etc/tmpfiles.d/zswap.conf 設定如下:

w- /proc/sys/vm/swappiness - - - - 100
w- /sys/module/zswap/parameters/max_pool_percent - - - - 30

但重開機後,發現只有部份參數生效,原因是 /proc/sys/vm/swappiness 有 race condition,會被 sysctl 的開機設定蓋寫如下:

/etc/sysctl.d/99-sysctl.conf:1:vm.swappiness = 10

改修改 /etc/tmpfiles.d/zswap.conf 設定如下:

w+ /etc/sysctl.d/99-sysctl.conf - - - - vm.swappiness = 100
w- /sys/module/zswap/parameters/max_pool_percent - - - - 30

重開機之後就生效開始運作了。

FAQ

Q: hibernate 的機制跟 swap 有關,是否能正常運作?

目前測試 OK 。但不確定在 MEM 吃緊時,是否還是正常

Q: 如果 reset swap 讓 swap 歸零?

可執行下述指令

sudo swapoff -a; sleep 30; sudo swapon -a

Reference