Перейти до вмісту

Zram

Матеріал з Вікіпедії — вільної енциклопедії.

zram, раніше compcache, — модуль ядра Linux, який робить у оперативній пам'яті стиснений блоковий пристрій. Це рамдиск, що стискає дані на льоту. Його віддають під своп або як звичайний диск у пам'яті. Найчастіше туди кладуть тимчасові файли /tmp і сторінки свопу. Спочатку була лише друга роль, звідси стара назва: стиснений кеш. Порожній пристрій займає близько 0,1% свого номінального розміру. Це не апаратна пам'ять Z-RAM і не zswap.

Чотири роки модуль прожив у зоні staging. У основне ядро він увійшов у Linux 3.14, випуск 30 березня 2014 року. З версії 3.15 від 8 червня 2014-го є кілька потоків стиснення і кілька алгоритмів: DEFLATE, LZ4 і LZ4HC, LZO-RLE, Zstandard і 842. Від ядра 5.1 типовий алгоритм — LZO-RLE, компроміс швидкості й коефіцієнта. Алгоритм, як і решту параметрів, обирають через sysfs.

Як стиснений своп zram близький до zswap, але zswap — це кеш сторінок свопу всередині ядра, а не універсальний диск, і йому завжди потрібне тилове сховище. zram працює і без нього. З CONFIG_ZRAM_WRITEBACK у ядрі 4.14 холодні сторінки можна виштовхувати на розділ диска. Ядро саме, коли пам'ять кінчається, цього не вирішує: виштовхування треба замовити з простору користувача, і тилом поки що може бути лише розділ. Від версії 7.0 дані йдуть на тилове сховище без попереднього розпакування.

На свопі zram тримає в тій самій оперативній пам'яті більше сторінок, ніж якби її віддали програмам або дисковому кешу без стиснення. На машинах з малою пам'яттю це помітно. 2012 року Ubuntu ненадовго розглядала типовий zram для комп'ютерів з невеликим обсягом. Fedora увімкнула його за замовчуванням із випуску 33.

На вбудованих платах і нетбуках своп часто лежить на флеші, а флеш зношується від підсилення запису. Стиснений своп зменшує кількість виштовхнутих на носій сторінок і тим подовжує носій. Падає і обсяг введення-виведення, коли системі все ж доводиться свопити. На слабкому залізі зі збирачем сміття і повільним, наприклад USB, диском запис свопу здатний надовго підвісити машину. У таких навантаженнях zram інколи майже подвоює корисну пам'ять і лишається швидшим за роботу без нього, але без запасного свопу на диску це ризиковано: стиснений пристрій сам сидить у тій пам'яті, яку рятує.

Android бере zram у своєму керуванні пам'яттю. Виробники називають ту саму річ по-своєму: RAM Plus у Samsung, Extended RAM у vivo, Memory Extension у Xiaomi, virtual RAM або RAM Turbo в Honor.

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]