О проекте

ZSwap-Cli (command-line tool to control zswap options) – это клиент командной строки, предназначенный для работы с параметрами модуля ядра zswap как в интерактивном режиме, так и при помощи сервиса systemd.

Лицензия: MIT.

Распространение

Загрузить последнюю версию скрипта в исходных кодах, вы всегда можете на странице проекта на GitHub, в разделе Релизы, либо на общей странице загрузок.

Требования к системе

Для работы проекта необходима современная версия ядра Linux, собранная с поддержкой модуля zswap.

Опциональные зависимости:

  • Boost.

Установка и использование

Установка выполняется стандартно, хотя мы настоятельно рекомендуем собрать пакет для используемого дистрибутива.

Параметры командной строки

Приложение zswap-cli поддерживает следующие параметры командной строки:

  • -h или --help – вывести краткую справочную информацию;
  • -v или --version – вывести информацию о версии программы и поддерживаемом API ядра;
  • --config – получить параметры из указанного файла конфигурации;
  • --env – получить параметры из переменных окружения;
  • --stats X– вывести статистику использования модуля, где X:
    • 0 (будет использоваться если не указано явно) – вывести всю полезную информацию: текущие настройки, статистику использования, а также отладочную информацию;
    • 1 – вывести только настройки модуля;
    • 2 – вывести только статистику использования;
    • 3 – вывести только отладочную информацию;
  • -e или --enabled – включить (Y) или отключить (N) модуль zswap;
  • -s или --same_filled_pages_enabled – включить (Y) или отключить (N) дедупликацию страниц памяти, помещаемых в раздел/файл подкачки;
  • -p или --max_pool_percent – задаёт максимальный размер пула, который может быть создан и использован модулем (целое в диапазоне от 1 до 100);
  • -c или --compressor – позволяет изменить алгоритм сжатия;
  • -z или --zpool – выбор варианта zpool ядра Linux;
  • -a или --accept_threhsold_percent – задаёт предел переполнения пула zswap (целое в диапазоне от 1 до 100);
  • -n или --non_same_filled_pages_enabled – включить (Y) или отключить (N) приём в пул отличающихся страниц памяти;
  • -x или --exclusive_loads – включить (Y) или отключить (N) аннулирование страниц, загруженных из сжатого пула;
  • -r или --shrinker_enabled - включить (Y) или отключить (N) усечение пула для хранения сжатых страниц в зависимости от свободного объёма оперативной памяти.

Переменные окружения

Приложение zswap-cli поддерживает получение параметров при помощи переменных окружения:

  • ZSWAP_ENABLED_VALUE – включить (Y) или отключить (N) модуль zswap;
  • ZSWAP_SAME_FILLED_PAGES_ENABLED_VALUE – включить (Y) или отключить (N) дедупликацию страниц памяти, помещаемых в раздел/файл подкачки;
  • ZSWAP_MAX_POOL_PERCENT_VALUE – задаёт максимальный размер пула, который может быть создан и использован модулем (целое в диапазоне от 1 до 100);
  • ZSWAP_COMPRESSOR_VALUE – задаёт максимальный размер пула, который может быть создан и использован модулем (целое в диапазоне от 1 до 100);
  • ZSWAP_ZPOOL_VALUE – выбор варианта zpool ядра Linux;
  • ZSWAP_ACCEPT_THREHSOLD_PERCENT_VALUE – задаёт предел переполнения пула zswap (целое в диапазоне от 1 до 100);
  • ZSWAP_NON_SAME_FILLED_PAGES_ENABLED_VALUE – включить (Y) или отключить (N) приём в пул отличающихся страниц памяти;
  • ZSWAP_EXCLUSIVE_LOADS_VALUE – включить (Y) или отключить (N) аннулирование страниц, загруженных из сжатого пула;
  • ZSWAP_SHRINKER_ENABLED_VALUE – включить (Y) или отключить (N) усечение пула для хранения сжатых страниц в зависимости от свободного объёма оперативной памяти.

Работа при помощи systemd

Внесём изменения в главный файл конфигурации zswap-cli:

sudoedit /etc/zswap-cli.conf

Активируем и запустим сервис systemd:

sudo systemctl enable --now zswap-cli.service

Изменения вступят в силу немедленно. Перезагрузка не требуется.