ZSWAP と ZRAM のメモ.ZSWAP は SWAP のための compressed cache で,ZRAM は Compressed RAM block device.ともに圧縮を用いてメモリ/SWAPの効率化を図るもの,だと思う.
CONFIG_ZRAM
: Compressed RAM block device supportCONFIG_ZSWAP
: Compressed cache for swap pages (EXPERIMENTAL)
ZRAM
CONFIG_ZRAM
で設定する.モジュール化可.CONFIG_ZSMALLOC
に依存し,CONFIG_ZSMALLOC_STAT=y
としておくと debugfs 経由で stat が確認できる./sys/kernel/debug/zsmalloc/zram0/classes
等.
Debian の場合は特に package は提供されておらず,https://wiki.debian.org/ZRam のように /etc/init.d/zram
を用意して利用する.
SWAP する際にこの圧縮された block device が利用されるイメージ.とはいえこの compressed block device 自体も RAM であるという,不思議な状況になる.
ZSWAP
SWAP する際にそれを圧縮して RAM 上に CACHE する,というアプローチ.こちらは別途 SWAP 用の HDD/SDD などの存在が想定される.
CONFIG_ZSWAP
で設定,モジュール化不可.CONFIG_ZPOOL
に依存するとともに,Default の mm/zswap.c
で #define ZSWAP_ZPOOL_DEFAULT "zbud"
となっているので,CONFIG_ZBUD=y
(Low (Up to 2x) density storage for compressed pages)も組み込む必要があるっぽい.
# echo 1 > /sys/module/zswap/parameters/enabled
で enable する.max_pool_percent
, zpool
, compressor
を設定可能./sys/kernel/debug/zswap/
以下に stat がある.sudo grep -R . /sys/kernel/debug/zswap
とかで参照.
参考にしたページ: https://web.archive.org/web/20170311013437/http://gnu.hatenablog.com/entry/2016/01/12/072154