Как включить ZRAM в Linux и максимально эффективно использовать память.

Последнее обновление: 19/04/2026
Автор: Исаак
  • zram создает в оперативной памяти сжатые блочные устройства, которые действуют как файлы подкачки или сверхбыстрые диски, сокращая количество обращений к диску и повышая производительность.
  • В Debian, Ubuntu и производных дистрибутивах включить zram легко с помощью zram-tools, настроив алгоритм сжатия и размер в соответствии с установленной оперативной памятью.
  • Такие инструменты, как zram-config или zram-generator, автоматизируют создание множества устройств zram и их интеграцию с systemd.
  • Выбор между процентным или фиксированным размером, а также приоритет ZRAM над файлом подкачки на диске, позволяет создать сбалансированную и эффективную конфигурацию.

Настройка zram в Linux

Если вы ежедневно используете GNU/Linux и вас беспокоит максимальная производительность вашего компьютера, и вы хотите максимально эффективно его использовать, то эта информация для вас.Рано или поздно вы столкнетесь с концепцией zRAM. Многие пользователи с ограниченным объемом оперативной памяти сталкиваются с подтормаживаниями, периодическими зависаниями или снижением производительности при одновременном открытии нескольких ресурсоемких приложений. Традиционно решением было использование раздела подкачки на жестком диске, но сегодня существуют гораздо более быстрые и эффективные альтернативы.

zram — это одна из тех маленьких жемчужин, которые предлагает ядро ​​Linux.Это позволяет создавать сжатые блочные устройства непосредственно в оперативной памяти для использования в качестве сверхбыстрой области подкачки или даже в качестве временных дисков. При правильной настройке это может существенно улучшить производительность как на системах со скромным объемом оперативной памяти (4-8 ГБ), так и на более мощных машинах с 16 или 32 ГБ, уменьшая количество обращений к диску, предотвращая сбои и повышая общую производительность системы.

Что такое ZRAM и почему он повышает производительность по сравнению с классической заменой прошивок?

zram — это модуль ядра Linux, который создает сжатые блочные устройства в оперативной памяти.Иными словами, это создает своего рода «виртуальный диск» в оперативной памяти, на котором может быть создано пространство подкачки или даже файловая система. Данные, записываемые на это устройство, сжимаются на лету с помощью процессора и хранятся в памяти, поэтому они занимают меньше места, чем без сжатия.

Главная идея заключается в том, чтобы воспользоваться тем фактом, что оперативная память намного быстрее любого жесткого диска или твердотельного накопителя.Когда в системе начинает заканчиваться физическая память, вместо того чтобы выгружать страницы памяти на медленный диск, она сжимает их в zRAM. Хотя при сжатии и распаковке теряется часть ресурсов ЦП, выигрыш в скорости доступа более чем компенсируется, а износ диска снижается, что особенно важно для SSD-накопителей.

Этот механизм первоначально был известен как compcache.Со временем он развивался, пока не был интегрирован в ядро ​​под своим нынешним названием zram. Сегодня он считается очень серьезной альтернативой (а во многих дистрибутивах — предпочтительным вариантом) традиционному разделу подкачки, который мы видим в Linux уже несколько десятилетий.

Одним из очевидных практических преимуществ является повышение производительности в «экстремальных» ситуациях.Например, на ноутбуках под управлением Fedora было протестировано, что при переключении с файла подкачки на файл подкачки через zRAM некоторые требовательные игры, запущенные с помощью Proton (например, Doom 2016), стали работать с частотой кадров от 6-7 до примерно 20 fps на том же оборудовании, просто изменив стратегию подкачки. Это не магия; просто файл подкачки теперь находится не на относительно медленном диске, а в сжатой оперативной памяти.

Этот подход также имеет преимущества на современных компьютерах с большим объемом памяти.Хотя может показаться, что при наличии 16 или 32 ГБ оперативной памяти файл подкачки не нужен, на самом деле наличие сжатого буфера в zram может помочь поддерживать плавность работы при открытии браузеров с десятками вкладок, виртуальных машин, ресурсоемких редакторов или игр, предотвращая запуск процессов системой и зависания.

Где сегодня используется zram и какие дистрибутивы уже включают его или упрощают его использование?

Многие дистрибутивы активно используют zram в качестве замены или дополнения к классическому файлу подкачки.Один из самых известных примеров — Fedora, которая по умолчанию отдала приоритет файлу подкачки над zRAM, вместо того чтобы полагаться исключительно на раздел подкачки на диске. Это изменение значительно улучшило работу на ноутбуках и настольных компьютерах с ограниченным объемом памяти.

В среде Debian и Ubuntu подход менялся на протяжении многих лет.В Debian 10 (Buster) и Debian 11 (Bullseye), а также в Ubuntu 20.04 LTS и более поздних версиях, можно легко настроить zram с помощью специальных пакетов (таких как zram-tools или zram-generator). Кроме того, Ubuntu обычно использует файл подкачки на диске вместо выделенного раздела, что значительно упрощает отключение этого пространства подкачки, если вы решите перейти на zram.

В других дистрибутивах zram даже интегрирован в установщики.Например, Arch Linux предлагает возможность включить zram непосредственно из своего установщика archinstall. Просто выберите соответствующую опцию, чтобы настроить систему с использованием файла подкачки вместо zram, используя довольно разумные параметры по умолчанию, которые некоторые пользователи даже используют в качестве ориентира для тонкой настройки своих собственных систем.

Помимо настольных компьютеров, ZRAM также используется в мобильных устройствах и встроенных системах.Android и Ubuntu Touch используют это преимущество, чтобы освободить немного места на смартфонах с ограниченным объемом памяти: оперативная память — очень ценный ресурс, и возможность сжатия части ее содержимого позволяет запускать более ресурсоемкие приложения, чем это было бы возможно при использовании только физической памяти. Некоторые легковесные дистрибутивы для настольных компьютеров также включают ее по умолчанию.

На системах с большим объемом оперативной памяти, таких как настольные ПК или мини-ПК с 16-32 ГБ.Всё чаще при установке не создаётся раздел подкачки, а используется только zram в качестве механизма сжатой подкачки. Это обеспечивает бесперебойную работу системы без необходимости резервирования дискового пространства для подкачки, которая во многих случаях используется крайне редко.

  Как мне найти своих друзей в Pinterest и добавить новых людей?

Основные понятия: файл подкачки, блочные устройства и виртуальные диски в оперативной памяти.

Для полного понимания работы zram полезно рассмотреть два понятия: подкачка и блочные устройства.В GNU/Linux «почти всё является файлом», и аппаратные устройства не являются исключением: они представлены как специальные файлы в каталоге /dev. Жесткий диск, SSD-накопитель, SD-карта или USB-флешка отображаются как блочные устройства, к которым система обращается через один и тот же интерфейс, несмотря на использование разных базовых технологий.

Блочное устройство может содержать традиционную файловую систему.Такие файловые системы, как ext4, XFS, btrfs и т. д., могут быть смонтированы в точке монтирования для обычного доступа пользователя. Однако эта абстракция также позволяет создавать блочные устройства, не связанные с каким-либо физическим оборудованием, например, виртуальные диски в оперативной памяти. Это области оперативной памяти, которые система предоставляет как «диски», и которые можно форматировать и монтировать, как любой другой накопитель.

С другой стороны, область подкачки — это область, используемая виртуальной памятью системы, когда заканчивается оперативная память.Традиционно пространство подкачки находится на диске (в разделе или файле). Когда ядру необходимо освободить оперативную память, оно перемещает менее активные страницы памяти в эту область подкачки. Проблема в том, что доступ к диску на порядки медленнее, чем доступ к оперативной памяти, поэтому, когда система начинает активно использовать подкачку в файл подкачки, становится очевидным очень заметное замедление работы.

Идея Zram заключается в том, чтобы объединить лучшее из двух миров.Это включает в себя создание «фиктивного» блочного устройства внутри оперативной памяти и сжатие записываемых в него данных. Это позволяет достичь эффекта, аналогичного увеличению объема доступной памяти (поскольку сжатые данные занимают меньше места), практически с той же скоростью, что и оперативная память, так как узким местом становится процессор, а не диск. Это особенно полезно в системах с достаточно мощным процессором, где затраты на сжатие и распаковку вполне приемлемы.

Кроме того, еще одним очевидным преимуществом является то, что оперативная память не изнашивается.Использование файла подкачки на SSD-накопителе подразумевает постоянную запись на носитель информации с ограниченным сроком службы; с zram все операции подкачки происходят в оперативной памяти, не повреждая диски и не требуя выделенного дискового пространства. Именно поэтому все больше пользователей ноутбуков и SSD-накопителей предпочитают настраивать файл подкачки в zram и во многих случаях полностью отключать подкачку диска.

Алгоритмы сжатия в ZRAM: LZ4, ZSTD, LZO и другие.

Как правило, принимается следующий порядок исполнения.С точки зрения скорости сжатия и распаковки, lz4 обычно является самым быстрым, за ним следуют zstd и затем lzo. Что касается коэффициента сжатия (т.е. насколько уменьшается размер данных), то обычно выигрывает zstd, за ним следуют lzo и затем lz4. Это означает, что zstd сжимает больше данных, но работает немного медленнее, чем lz4, в то время как lz4 жертвует коэффициентом сжатия ради молниеносной производительности.

Во многих сценариях использования на настольных компьютерах zstd обеспечивает превосходный баланс.Он сжимает данные лучше, чем lz4 (тем самым "растягивая" оперативную память), и обычно достаточно быстр на современных машинах. По этой причине некоторые администраторы и опытные пользователи рекомендуют настраивать zram на использование zstd в качестве основного алгоритма, если только оборудование не сильно ограничено производительностью процессора и каждый цикл имеет значение.

Доступные и выбранные алгоритмы можно просмотреть непосредственно в системе. После загрузки модуля zram достаточно проверить содержимое файла /sys/block/zram0/comp_algorithm, чтобы увидеть, какие алгоритмы в данный момент поддерживает ядро ​​и какой из них активен. Эта информация также закомментирована в некоторых конфигурационных файлах для таких инструментов, как zram-tools.

В любом случае, выбор алгоритма обычно не требует частых изменений.Обычно выбирают один из алгоритмов (например, zstd или lz4), оставляют его по умолчанию в настройках и, если вы особенно щепетильны, проводят тесты производительности на своей системе. Большинство пользователей заметят явное улучшение просто за счет включения zram, независимо от каких-либо незначительных различий между алгоритмами.

Включите zram в Debian, Ubuntu и производных дистрибутивах с помощью zram-tools.

В Debian, Ubuntu и многих дистрибутивах на основе APT самый простой способ включить zram — использовать пакет zram-tools.Этот пакет предоставляет сервис и центральный конфигурационный файл, позволяющие легко определить, как zram будет использоваться в качестве файла подкачки. Это проверенный и достаточно стандартный метод, хорошо работающий в Debian 10, Debian 11, Ubuntu 20.04, Ubuntu 22.04 и более ранних версиях.

Первым шагом является установка соответствующего пакета из терминала.с использованием sudo или учетной записи root. Типичная команда в этих дистрибутивах будет выглядеть так:

sudo apt install zram-tools

После установки zram-tools файл ключа находится по адресу /etc/default/zramswapЗдесь определяются такие параметры, как алгоритм сжатия, общий размер zram и его приоритет над другими файлами подкачки. Если перезагрузить систему, ничего не меняя, она обычно по умолчанию создает небольшой объем zram (например, 250 МиБ), чего часто недостаточно для реального использования на настольном компьютере в наши дни.

Чтобы настроить параметры под свои нужды, вам необходимо отредактировать этот файл с помощью вашего любимого редактора.Те, кто предпочитает графический интерфейс, могут использовать такие программы, как Geany с правами суперпользователя (sudo), а те, кто предпочитает консольный режим, обычно используют nano или аналогичные. Например:

sudo nano /etc/default/zramswap

В этом файле вы найдете несколько разделов с аннотациями. В них описываются доступные параметры. Обычно есть раздел об алгоритме сжатия, другой — о проценте оперативной памяти, выделяемой под zram, третий — для установки статического размера в МиБ, и параметр приоритета для файла подкачки. Формат может немного отличаться в разных версиях, но основная концепция остается той же.

  Способы сброса пароля Notes на iPhone

Настройте алгоритм и размер пространства подкачки в zram в соответствии с объемом оперативной памяти компьютера.

Одна из важнейших настроек — выбор подходящего алгоритма сжатия.В zram-tools обычно есть строка типа ALGO=, которая закомментирована или имеет значение по умолчанию (часто lz4). Если вы хотите более эффективно использовать оперативную память, и ваш процессор не сильно ограничен в своих возможностях, вы можете изменить его на использование zstd, в результате чего получится что-то вроде:

ЧТО-ТО=zstd

Второй важный параметр — это объем пространства, выделяемого для zram.Существует две распространенные стратегии: настройка процента от общего объема оперативной памяти или установка конкретного значения в МиБ. В некоторых примерах используются переменные, такие как PERCENT или PERCENTAGE, для определения процента (например, 50 для половины оперативной памяти), в то время как в других версиях файла используются переменные, такие как SIZE или ALLOCATION, для указания фиксированного размера.

Если вы выберете процентное распределение, то в системах с 4-8 ГБ оперативной памяти очень распространенная конфигурация — выделение примерно 50-70% памяти. а зрам. Например:

ПРОЦЕНТ = 50

Или в некоторых вариантах конфигурации: ПРОЦЕНТ = 50. Таким образом, на компьютере с 8 ГБ оперативной памяти будет создано приблизительно 4 ГБ файла подкачки, сжатого в zram, чего обычно достаточно для большинства настольных компьютеров и позволяет избежать приближения к физическим ограничениям.

На компьютерах с большим объемом оперативной памяти обычно целесообразнее задать статический размер.Вместо того чтобы позволять очень высокому проценту генерировать непропорционально большой объем zram, можно использовать такие значения, как SIZE или ALLOCATION в МиБ. Некоторые администраторы рекомендуют, например, 4096 МиБ (4 ГиБ) zram для систем с более чем 8 ГБ оперативной памяти и 8192 МиБ (8 ГиБ) для систем с более чем 16 ГБ, оставляя оставшуюся память несжатой.

В качестве реального примера на компьютере с 32 ГБ оперативной памяти можно привести следующий случай: ALGO=zstd и SIZE=4096 резервируют 4 ГБ подкачки в zram с помощью zstd. Некоторые пользователи используют в качестве примера установщик archinstall из Arch Linux для машин с 32 ГБ оперативной памяти, который обычно выделяет около 4 ГБ zram; другие предпочитают увеличивать объем до 8 ГБ, если запускают много виртуальных машин или большие контейнеры.

Этот конфигурационный файл обычно содержит довольно подробные комментарии. Что касается доступных параметров и ссылок на официальную документацию ядра, рекомендуется внимательно прочитать эти комментарии, чтобы понять, за что отвечает каждая переменная. Если вы не уверены, какое значение установить, лучше перестраховаться: лучше начать с 4 ГБ и увеличить значение позже, чем сразу переходить к чрезмерно большим размерам, которые могут привести к нехватке оперативной памяти, если сжатие не сможет значительно уменьшить объем данных.

Управление существующим файлом подкачки и приоритетами подкачки.

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

На компьютерах с большим объемом оперативной памяти (например, 16 или 32 ГБ) многие пользователи предпочитают полностью отключать раздел подкачки или файловый менеджер диска.В этих случаях они полагаются исключительно на zram для подкачки, что позволяет избежать медленного доступа к диску и снижает износ SSD-накопителей. Если в вашей системе Debian или Ubuntu не был создан раздел подкачки на диске (например, потому что вы пропустили его при установке), вам не нужно ничего менять в /etc/fstab.

Если у вас есть раздел подкачки, вы можете отключить его, отредактировав файл /etc/fstab. и комментирование строки, соответствующей точке сборки этой замены. Типичная процедура будет следующей:

Sudo нано / и т.д. / Fstab

Найдите строку, которая относится к разделу подкачки. (обычно с указанием типа файла подкачки) и закомментируйте его, добавив # в начале. После сохранения изменений и перезагрузки система больше не будет монтировать этот файл подкачки и сосредоточится на zram. В качестве рекомендации, на системах всего с 4 ГБ оперативной памяти может быть хорошей идеей хранить файл подкачки в качестве дополнительной резервной копии, в то время как при объеме памяти от 6 до 8 ГБ вполне достаточно zram.

В самом конфигурационном файле zram также можно настроить приоритет устройства.Это делается с помощью такой опции, как PRIORITY. Функция swapon позволяет назначать числовые приоритеты каждой области подкачки; чем выше число, тем раньше ядро ​​будет использовать эту область подкачки. Логично присвоить zram более высокий приоритет, чем любой файл подкачки на HDD или SSD, гарантируя, что быстрая область подкачки в ОЗУ будет исчерпана первой, и только при необходимости будет использован файл подкачки на диске.

Если в какой-либо момент вам понадобится проверить, какой файл подкачки активен и в каком порядке он используется, вы можете это сделать.Вы можете использовать команду `swapon --show`. Эта команда отобразит таблицу, показывающую устройства подкачки, их размер, текущее использование и приоритет. Это быстрый способ убедиться, что ваша конфигурация zram работает должным образом и что система действительно использует её возможности.

Использование zram в качестве сжатого RAM-диска с помощью systemd zram-generator

Помимо zram-tools, в современных системах с systemd есть еще один очень мощный вариант: zram-generator.Этот пакет позволяет определять устройства zram с помощью конфигурационных файлов в /etc/systemd, обеспечивая достаточную гибкость для использования их как в качестве файловой системы подкачки, так и в качестве дисков общего назначения, отформатированных с использованием файловых систем, таких как ext4.

  Как разблокировать Huawei с помощью пароля или графического ключа?

Основной конфигурационный файл обычно находится по адресу /etc/systemd/zram-generator.confВо многих системах он по умолчанию отсутствует, поэтому вам потребуется создать его вручную. В качестве альтернативы вы можете настроить структуру в /etc/systemd/zram-generator.conf.d/ с одним или несколькими файлами *.conf, которые будут действовать как фрагменты конфигурации и перезаписывать части основного файла, если таковой существует.

Синтаксис основан на разделах с именами типа , , и т. д. Нумерация начинается с 0, определяя таким образом первое устройство, второе и так далее. В каждом разделе можно задать параметры, аналогичные тем, что используются в zram-tools, но с некоторыми дополнительными опциями, специфичными для systemd и использования диска.

Среди наиболее интересных вариантов — алгоритм сжатия.Это позволяет выбрать алгоритм сжатия (например, zstd, lz4, lzo-rle и т. д.). Если он не указан, система будет использовать алгоритм по умолчанию ядра, который во многих случаях является lzo-rle. Также существует директива `options` для передачи параметров монтирования или подкачки, таких как `discard`, которая приводит к удалению неиспользуемых сжатых страниц во время выполнения, оптимизируя управление памятью.

Ещё одна важная директива — writeback-device.Эта опция, разработанная для сложных сценариев, позволяет назначить устройство для хранения страниц, которые невозможно эффективно сжать, выгружая их из zram. Такая конфигурация реже встречается на настольных компьютерах, но может быть полезна в условиях ограниченного пространства, где необходимо объединить сжатую память и резервное хранилище.

Если вы хотите использовать zram в качестве сжатого диска в оперативной памяти, вам понадобятся fs-type и mount-point.С помощью параметра `fs-type` вы определяете файловую систему (например, ext4), а с помощью `mount-point` — каталог, куда будет смонтировано устройство zram. Это позволяет, например, монтировать в оперативную память сверхбыстрый, сжатый временный каталог, полезный для ресурсоемких компиляций, обработки временных данных или кэширования приложений.

В одном устройстве можно использовать разные функции, создавая несколько устройств ZRAM.zram0 используется как файл подкачки, а zram1 — как диск, смонтированный с файловой системой ext4. В некоторых практических примерах настраивается, например, так, что zram0 создается только в том случае, если система имеет больший объем оперативной памяти (например, 9 ГБ), и что каждое устройство может использовать до 2 ГБ физической памяти, тем самым регулируя максимальное потребление zram и предотвращая чрезмерное использование оперативной памяти, если сжатие не будет достаточно эффективным.

Практические проверки и автоматическое поведение zram-config

Некоторые инструменты, такие как zram-config (используемый в некоторых дистрибутивах Ubuntu), автоматизируют большую часть настройки.После установки этот пакет по умолчанию создает и настраивает zram, требуя минимального вмешательства пользователя. После перезагрузки система запускается с устройствами zram, готовыми к использованию в качестве приоритетных файлов подкачки.

Одна из распространенных стратегий таких автоматических конфигураций заключается в создании устройства zram для каждого ядра ЦП.Это позволяет распределять нагрузку по сжатию и распаковке между несколькими потоками, что обеспечивает более эффективное использование многоядерных процессоров. Например, в четырехъядерной системе вы увидите четыре устройства zram (zram0, zram1, zram2, zram3) примерно одинаковых размеров, которые ядро ​​может использовать параллельно.

Общий размер zram обычно составляет примерно половину физического объема оперативной памяти.Таким образом, на компьютере с 8 ГБ оперативной памяти конфигурация по умолчанию может обеспечить около 4 ГБ zRAM, распределенных между различными устройствами. Этот объем обычно обеспечивает хороший баланс между использованием преимуществ сжатия и наличием достаточного запаса памяти для процессов, которые плохо поддаются сжатию.

Приоритет, присваиваемый этим устройствам zram, обычно выше, чем у файлов подкачки.Это гарантирует, что система сначала будет использовать сжатое пространство подкачки в оперативной памяти и лишь в крайнем случае обратится к диску. Этот приоритет можно проверить с помощью команды `swapon --show`, где вы увидите числовые приоритеты и сможете убедиться, что zram имеет приоритет над традиционным файлом подкачки или разделом подкачки.

Для проверки точной конфигурации и фактического использования zram существует несколько полезных команд.Например, команда `cat /proc/swaps` отображает все активные области подкачки, включая zram, их размер и объем используемой памяти. Вы также можете просмотреть `/sys/block/zram*/` для получения подробной статистики и расширенных параметров, таких как текущий алгоритм сжатия или объем потребляемой физической памяти по сравнению с логически выделенной.

На практике, после правильной настройки zram, пользователю обычно не требуется вмешиваться.Операционная система определяет, какие страницы перемещаются в zRAM, когда их сжимать и когда освобождать. При использовании ресурсоемких программ или запуске множества приложений вы заметите, что производительность компьютера повышается до того, как он начнет замедляться или закрывать процессы из-за нехватки памяти.

Настройка файла подкачки вместо ZRAM в Linux позволяет еще эффективнее использовать доступную память.Сократите количество обращений к диску и улучшите общую плавность работы системы, независимо от того, используете ли вы ноутбук с 4-8 ГБ оперативной памяти или настольный компьютер с 32 ГБ; понимая параметры размера, алгоритма и приоритета, вы можете настроить эту функциональность по своему вкусу и получить от нее максимальную отдачу, не усложняя себе жизнь.

Искусственный интеллект от Google: меньше памяти, та же производительность.
Теме статьи:
TurboQuant: искусственный интеллект от Google, который обещает ту же производительность при значительно меньшем объеме памяти.