Написано на | C |
---|---|
Операционная система | Linux |
Тип | Функции ядра Linux |
Лицензия | Стандартная общественная лицензия GNU |
Веб-сайт | www.kernel.org |
zram, ранее называвшийся compcache, представляет собой модуль ядра Linux для создания сжатого блочного устройства в ОЗУ, другими словами ОЗУ, но со сжатием диска «на лету». Блочное устройство, созданное с помощью zram, затем можно использовать для подкачки или как RAM-диск общего назначения. Два наиболее распространенных использования zram - это хранение временных файлов (/ tmp
) и устройство подкачки. Изначально у zram была только последняя функция, отсюда и первоначальное название «compcache» («сжатый кеш»).
После четырех лет работы в области подготовки драйверов Linux, zram был введен в основное ядро Linux в версии 3.14, выпущенной 30 марта 2014 г. Начиная с версии ядра Linux 3.15 (выпущенной 8 июня 2014 г.) zram поддерживает несколько потоков сжатия и несколько алгоритмов сжатия . Алгоритмы сжатия включают DEFLATE (DEFLATE
), LZ4 (LZ4
и LZ4HC
«высокое сжатие»), LZO (LZO-RLE
«кодирование длин серий»), Zstandard (ZSTD
), (842
). Начиная с ядра 5.1, значение по умолчанию - LZO-RLE
, которое имеет баланс скорости и соотношения. Как и большинство других системных параметров, алгоритм сжатия можно выбрать с помощью sysfs.
. При использовании в качестве сжатого пространства подкачки zram аналогичен zswap, который не является RAM-диском общего назначения, а скорее сжатый кеш внутри ядра для страниц подкачки. До появления CONFIG_ZRAM_WRITEBACK
в версии ядра 4.14, в отличие от zswap, zram не мог использовать жесткий диск в качестве резервного хранилища, поэтому он не мог перемещать на диск менее часто используемые страницы. Однако для zswap требуется резервное хранилище, а для zram - нет.
При использовании для подкачки zram (например, zswap) позволяет Linux более эффективно использовать ОЗУ, поскольку операционная система может в таком случае удерживать больше страниц памяти в сжатом подкачке, чем если бы был такой же объем ОЗУ. используется как память приложения или дисковый кеш. Это особенно эффективно на машинах с небольшим объемом памяти. В 2012 году Ubuntu вкратце рассмотрела возможность включения zram по умолчанию на компьютерах с небольшим объемом установленной оперативной памяти.
Сжатое пространство подкачки с zram и zswap также дает преимущества для недорогих аппаратных устройств, таких как встроенные устройства и нетбуки. В таких устройствах обычно используется флеш-память, срок службы которой ограничен из-за усиления записи, а также используется для предоставления пространства подкачки. Уменьшение использования подкачки в результате использования zram эффективно снижает степень износа такого хранилища на основе флэш-памяти, что приводит к увеличению срока его службы. Кроме того, использование zram приводит к значительному сокращению ввода-вывода для систем Linux, требующих подкачки.
Google Chrome OS использует zram по умолчанию с 2013 года. Android включает zram начиная с версии 4.4. Lubuntu также начал использовать zram в своей версии 13.10.