LINUX.ORG.RU

История изменений

Исправление 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
111,8Гб ССД разбит 37Гб свопа (4гб рам) и 74гб раздел-файлопомойка быстрого доступа. tmpfs 25Гб в /tmp.

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
111,8Гб ССД разбит 37Гб свопа (4гб рам) и 74гб раздел-файлопомойка быстрого доступа. tmpfs 25Гб в /tmp.

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% оперативы «на случай ну а вдруг» или слишком раннего свопинга с половины занятой памяти.