試用 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