Как настроить ZRAM на Ubuntu Linux

Фотография увеличенного изображения модуля памяти.

Хотя ZRAM является отличным решением для обмена некоторой мощностью ЦП на увеличение объема ОЗУ, как можно настроить его, чтобы выделить больше или меньше ОЗУ для ZRAM? Как можно изменить алгоритм сжатия? В каких сценариях такие изменения оправданы? Читайте дальше, чтобы узнать, как настроить ZRAM на Ubuntu.

Содержание

  • Проверьте текущее состояние ZRAM
  • Измените размер ZRAM
  • Измените алгоритм сжатия ZRAM

Хорошо знать: Если вы не уверены, подходит ли вам ZRAM, ZCache или ZSwap, у нас есть ответ для вас.

Проверьте текущее состояние ZRAM

Большинство людей используют ZRAM на своих дистрибутивах Linux на базе Ubuntu и Debian через скрипт zram-config. Это потому, что он позволяет вам воспользоваться ZRAM самым простым способом. Вы можете установить его с помощью команды:

sudo apt install util-linux zram-config

Далее проверьте, включен ли ZRAM на вашем компьютере с Ubuntu. Вы можете сделать это, запустив утилиту zramctl:

zramctl

Убедитесь, что Zswap в данный момент отключен для вашей системы:

sudo-s  
echo0>/sys/module/zswap/parameters/enabled

Zswap является альтернативным решением кэша ОЗУ, которое, подобно ZRAM, по умолчанию присутствует в каждом дистрибутиве Linux. Однако, в отличие от ZRAM, он зависит от физических разделов подкачки, что означает, что он может быть медленным на старых дисках.

Перезагрузите компьютер, чтобы создать начальное устройство блочного ZRAM в вашей системе Ubuntu.

Совет: Узнайте, как вы можете продлить срок службы ваших SSD-дисков, включив TRIM в Ubuntu.

Зная правильную настройку ZRAM

Когда ваш компьютер снова запустится, проверьте, сообщает ли он теперь о разделе ZRAM:

cat/proc/swaps

Терминал, показывающий доступный файл подкачки и устройство блочного ZRAM.

Вы можете увидеть типичный файл подкачки, сосуществующий с одним устройством блочного ZRAM на нашем скриншоте. На этом моем компьютере было 4 ГБ ОЗУ и 2 ГБ ZRAM, что составляет половину от общего объема ОЗУ. Однако в зависимости от вашей нагрузки вы можете захотеть изменить этот размер.

  • Если вы работаете с мультимедиа и видео, они не очень сжимаемы, поэтому, вероятно, лучше уменьшить размер ZRAM и увеличить размер фактической подкачки.
  • Если вы работаете с большими базами данных или другими типами данных, которые хорошо сжимаются, то наоборот. В таких сценариях вы можете увеличить отзывчивость вашего компьютера, увеличив размер ZRAM.

Еще одна настройка, на которую стоит обратить внимание, касается алгоритма сжатия, используемого ZRAM. По умолчанию он использует LZO или LZO-RLE, который не нагружает ЦП. Однако на современных ЦП новый алгоритм ZSTD обычно предлагает лучшие коэффициенты сжатия, и его несколько большая нагрузка на ЦП не ощущается. Стоит использовать этот алгоритм вместо старых вариантов LZO, если ваш ПК младше десяти лет.

Измените размер ZRAM

Чтобы изменить настройки ZRAM, вам нужно отредактировать его исполняемый скрипт в папке “/usr/bin”. Введите следующую команду в терминале:

sudonano/usr/bin/init-zram-swapping

Прокрутите скрипт “init-zram-swapping” и найдите строку, которая начинается с mem.

Терминал, выделяющий переменную mem внутри скрипта подкачки zram.

Это определяет, сколько места ваш ядро выделит для устройства блочного ZRAM. По умолчанию он резервирует половину физической памяти вашей системы. Вы можете уменьшить это до четверти, заменив “1024” на “512.”

Терминал, выделяющий нижний смещение памяти для переменной mem.

Вы также можете увеличить объем памяти, который занимает ZRAM, установив значение mem на “1536.” Это выделит три четверти вашей физической памяти для ZRAM.

Терминал, выделяющий более высокое смещение памяти для переменной mem.

Измените алгоритм сжатия ZRAM

Вы также можете изменить алгоритм сжатия ZRAM из того же места. Для этого откройте новую сессию терминала, затем перечислите все доступные алгоритмы сжатия для ZRAM:

cat/sys/block/zram0/comp_algorithm

Терминал, показывающий все доступные алгоритмы сжатия для модуля ZRAM.

Вы можете комбинировать алгоритмы в продвинутых пользовательских конфигурациях ZRAM. Однако, если вы используете значения по умолчанию, все разделы ZRAM будут использовать один и тот же алгоритм.

Вернитесь к исполняемому скрипту “init-zram-swapping”, который мы редактировали ранее. Там найдите следующую строку:

echo$mem>/sys/block/zram0/disksize

Скопируйте и вставьте ее прямо под ней, чтобы у вас было два экземпляра одной и той же команды.

Терминал, выделяющий дублирующийся UNIX pipe echo для устройства блочного ZRAM.

Замените $mem в первом экземпляре в начале строки на “zstd.”

Терминал, выделяющий строку zstd для первого UNIX pipe echo.

Измените конец строки с “disksize” на “comp_algorithm.”

Терминал, выделяющий строку comp_algorithm для первого UNIX pipe echo.

Примечание: Если вы хотите использовать другой алгоритм, замените zstd в команде выше на одно из значений из cat /sys/block/zram0/comp_algorithm.

Сохраните отредактированный файл “init-zram-swapping”, затем перезагрузите компьютер.

Проверьте, работает ли ваша новая настройка ZRAM, запустив команду zramctl.

Терминал, показывающий устройство блочного ZRAM с большим объемом памяти и другим алгоритмом.

Убедитесь, что вы проверяете производительность вашей системы под нагрузкой, когда она активно использует вашу измененную подкачку. Если вы чувствуете, что она тормозит или заикается, возможно, вы переборщили и вам нужно уменьшить выбранные вами значения. Если, с другой стороны, она работает быстро, вы, вероятно, можете увеличить их еще немного.

Настройка ZRAM вашей системы — это только первый шаг в оптимизации вашей системы Ubuntu. Узнайте, как вы можете извлечь максимальную производительность из вашего компьютера, скомпилировав собственное ядро Linux на Ubuntu. Тем временем, если вы хотите собрать более мощный ПК, вот вещи, на которые стоит обратить внимание при сборке ПК для Linux.

Кредит изображения: Liam Briese через Unsplash. Все изменения и скриншоты сделаны Ramces Red.