О проекте
Zswap-cli (command-line tool to control zswap options) – это клиент командной строки, предназначенный для работы с параметрами модуля ядра zswap как в интерактивном режиме, так и при помощи сервиса systemd.
Лицензия: MIT.
Распространение
Загрузить последнюю версию скрипта в исходных кодах, вы всегда можете на странице проекта на GitHub, в разделе Релизы, либо на общей странице загрузок.
Требования к системе
Для работы проекта необходима современная версия ядра Linux, собранная с поддержкой модуля zswap.
Необходимые для сборки компоненты:
- компилятор с полной поддержкой стандарта C++20;
- CMake 3.28 или более новая версия;
- Boost 1.70 или более новая версия.
Установка и использование
Установка выполняется стандартно, хотя мы настоятельно рекомендуем собрать пакет для используемого дистрибутива.
Параметры командной строки
Приложение zswap-cli поддерживает следующие параметры командной строки:
--help– вывести краткую справочную информацию;--version– вывести информацию о версии программы и поддерживаемом API ядра;--config– получить параметры из указанного файла конфигурации;--env– получить параметры из переменных окружения;--stats X– вывести статистику использования модуля, где X:0(будет использоваться если не указано явно) – вывести всю полезную информацию: текущие настройки, статистику использования, а также отладочную информацию;1– вывести только настройки модуля;2– вывести только статистику использования;3– вывести только отладочную информацию;
--system– получить параметры из установленного в системе конфигурационного файла;--verbose– включает вывод дополнительной информации для отладочных или информационных целей;--enabled– включить (Y) или отключить (N) модуль zswap;--same_filled_pages_enabled– включить (Y) или отключить (N) дедупликацию страниц памяти, помещаемых в раздел/файл подкачки;--max_pool_percent– задаёт максимальный размер пула, который может быть создан и использован модулем (целое в диапазоне от 1 до 100);--compressor– позволяет изменить алгоритм сжатия;--zpool– выбор варианта zpool ядра Linux;--accept_threhsold_percent– задаёт предел переполнения пула zswap (целое в диапазоне от 1 до 100);--non_same_filled_pages_enabled– включить (Y) или отключить (N) приём в пул отличающихся страниц памяти;--exclusive_loads– включить (Y) или отключить (N) аннулирование страниц, загруженных из сжатого пула;--shrinker_enabled- включить (Y) или отключить (N) усечение пула для хранения сжатых страниц в зависимости от свободного объёма оперативной памяти.
Файлы конфигурации
Приложение zswap-cli использует современный метод работы с файлами конфигурации как для юнита systemd, так и параметра командной строки --system:
- файл конфигурации с настройками по умолчанию
/usr/share/zswap-cli/system.conf, предназначенный только для чтения и предоставляемый проектом, либо дистрибутивом. Этот файл не следует редактировать, т.к. настройки в нём будут автоматически перезаписаны при каждом следующем обновлении; - высокоприоритетный файл с пользовательскими настройками
/etc/zswap-cli/system.conf, который может быть создан и отредактирован пользователем по своему усмотрению и будет переопределять все параметры, заданные в файле по умолчанию. Его содержимое будет сохранено при обновлениях.
Для внесения изменений в файл конфигурации, сначала скопируем его в каталог /etc/zswap-cli:
sudo cp -a /usr/share/zswap-cli/system.conf /etc/zswap-cli/system.conf
Внесём и сохраним изменения:
sudoedit /etc/zswap-cli/system.conf
При необходимости восстановления настроек по умолчанию, просто удалим данный файл:
sudo rm -f /etc/zswap-cli/system.conf
Переменные окружения
Приложение 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, если это необходимо, как подробно описано в разделе “Файлы конфигурации”.
Активируем и запустим сервис systemd:
sudo systemctl enable --now zswap-cli.service
Изменения вступят в силу немедленно. Перезагрузка не требуется.