История изменений
Исправление kirill_rrr, (текущая версия) :
Мои настройки свопинга:
echo z3fold > /sys/module/zswap/parameters/zpool
echo 25 > /sys/module/zswap/parameters/max_pool_percent
echo 1 > /sys/module/zswap/parameters/enabled
echo 0 > /sys/kernel/mm/lru_gen/enabled
echo 64 > /proc/sys/vm/page-cluster
echo 80 > /proc/sys/vm/swappiness
echo 5 > /proc/sys/vm/watermark_scale_factor
zpool - тут выбор между z3fold и почитай про новую версию zsmalloc, после последних патчей вроде как должно быть лучше. Или не парься и ставь z3fold. zbud бесполезен.
max_pool_percent - тут понятно, дефолт 10 это мало, задирать больше 50% тоже думаю плохо.
/sys/module/zswap/parameters/enabled - я предпочитаю отключить его запуск при старте ядра и запустить позже. Но вроде и без этого не косячит и подхватывает все настройки.
page-cluster - важная переменная. Большинство страниц памяти по 4Кб, так что умножаем на штуки получаем размер пакета для сброса на диск. В идеале должно быть равно физическому кластеру записи ссд или кратно целому числу. Что там на физическом уровне ссд никто не знает, подбираем экспериментально или смотрим по пику скорости записи в тестах в инете для данного ссд. Там по дефолту кажется 4 - хорошо для HDD с блоками по 512б. Но zswap кеширует крупые объёмы свопа в себе, так что если перейти на большие пакеты то отзывчивость не пострадает.
lru_gen/enabled, swappiness, watermark_scale_factor - подбирал для себя экспериментально, на разных версиях ядер и в разных режимах работает прямо сильно по разному. Не трогай если в процессе работы заполнение памяти будет нормальным, без всяких вообще не используемых кусков в 20% оперативы «на случай ну а вдруг» или слишком раннего свопинга с половины занятой памяти.
Исходная версия kirill_rrr, :
Мои настройки свопинга:
echo z3fold > /sys/module/zswap/parameters/zpool
echo 25 > /sys/module/zswap/parameters/max_pool_percent
echo 1 > /sys/module/zswap/parameters/enabled
echo 0 > /sys/kernel/mm/lru_gen/enabled
echo 64 > /proc/sys/vm/page-cluster
echo 80 > /proc/sys/vm/swappiness
echo 5 > /proc/sys/vm/watermark_scale_factor
zpool - тут выбор между z3fold и почитай про новую версию zsmalloc, после последних патчей вроде как должно быть лучше. Или не парься и ставь z3fold. zbud бесполезен.
max_pool_percent - тут понятно, дефолт 10 это мало, задирать больше 50% тоже думаю плохо.
/sys/module/zswap/parameters/enabled - я предпочитаю отключить его запуск при старте ядра и запустить позже. Но вроде и без этого не косячит и подхватывает все настройки.
page-cluster - важная переменная. Большинство страниц памяти по 4Кб, так что умножаем на штуки получаем размер пакета для сброса на диск. В идеале должно быть равно физическому кластеру записи ссд или кратно целому числу. Что там на физическом уровне ссд никто не знает, подбираем экспериментально или смотрим по пику скорости записи в тестах в инете для данного ссд.
lru_gen/enabled, swappiness, watermark_scale_factor - подбирал для себя экспериментально, на разных версиях ядер и в разных режимах работает прямо сильно по разному. Не трогай если в процессе работы заполнение памяти будет нормальным, без всяких вообще не используемых кусков в 20% оперативы «на случай ну а вдруг» или слишком раннего свопинга с половины занятой памяти.