ZRam: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
мНет описания правки
Метки: с мобильного устройства через мобильное приложение
zRam: Исправлена опечатка
Метки: с мобильного устройства через мобильное приложение через приложение для Android App section source
 
(не показаны 23 промежуточные версии 10 участников)
Строка 1: Строка 1:
{{Distinguish|zswap}}
{{lowercase|title=zRam}}
{{lowercase|title=zRam}}


'''zRam''', ранее известный как '''compcache''', — [[Модуль ядра|модуль]] [[ядро Linux|ядра Linux]]. Он создаёт в [[Оперативная память|оперативной памяти]] [[Сжатие данных|сжатое]] [[блочное устройство]] (другими словами, [[RAM-диск]] со сжатием данных «на лету»), которое может использоваться, например, как устройство [[Подкачка страниц|подкачки страниц]], хранения [[Временный файл|временных файлов]] (<code>/tmp</code>) или же просто как RAM-диск общего назначения.
'''zRam''' — модуль [[ядро Linux|ядра Linux]] (ранее известный как {{lang-en2|compcache}}). Он увеличивает производительность путём предотвращения [[Подкачка страниц|подкачки страниц]] на диск, используя сжатое [[блочное устройство]] в [[оперативная память|оперативной памяти]], пока не появится необходимость использовать файл подкачки на [[жёсткий диск|жёстком диске]]. Скорость обмена с оперативной памятью выше, чем с жёстким диском, следовательно, zRam позволяет Linux производить большее число операций подкачки, особенно на старых компьютерах с малым объёмом оперативной памяти.<ref name="WebUpd802Oct11">{{Cite news|url = http://www.webupd8.org/2011/10/increased-performance-in-linux-with.html|title = Increased performance in Linux with zRam (virtual swap compressed in ram)|last = |first = Andrew|date = 2 October 2011| work = Web Upd8}}</ref><ref name="comp">{{Cite web|url=http://code.google.com/p/compcache/|title=compcache Compressed Caching for Linux|last=[[Google Code]]|date=27 April 2010|archiveurl=https://www.webcitation.org/6Dk3JcWKU?url=http://code.google.com/p/compcache/|archivedate=2013-01-17}}</ref>


Хотя стоимость оперативной памяти сейчас относительно низкая, zRam всё же позволяет получить преимущества на [[ноутбук]]ах, «слабых» компьютерах, при [[Виртуализация|виртуализации]] и во [[Встраиваемая система|встраиваемых системах]], использующих [[флеш-память]], которая имеет ограниченное количество циклов перезаписи.<ref name="comp" />
Хотя стоимость оперативной памяти сейчас{{неопределённость|когда?}} относительно низкая, zRam всё же позволяет получить преимущества на компьютерах с малым объёмом оперативной памяти, при [[Виртуализация|виртуализации]] и во [[Встраиваемая система|встраиваемых системах]], использующих [[флеш-память]], которая имеет ограниченное количество циклов перезаписи.<ref name="comp" /> Скорость обмена с оперативной памятью выше, чем с [[Жёсткий диск|жёстким диском]], поэтому zRam, с учётом сжатия, как правило, позволяет Linux повысить производительность.<ref name="WebUpd802Oct11">{{Cite news|url = http://www.webupd8.org/2011/10/increased-performance-in-linux-with.html|title = Increased performance in Linux with zRam (virtual swap compressed in ram)|last = |first = Andrew|date = 2011-10-02|work = Web Upd8|accessdate = 2012-12-07|archivedate = 2022-02-14|archiveurl = https://web.archive.org/web/20220214095148/http://www.webupd8.org/2011/10/increased-performance-in-linux-with.html}}</ref><ref name="comp">{{Cite web|url=http://code.google.com/p/compcache/|title=compcache Compressed Caching for Linux|last=[[Google Code]]|date=2010-04-27|archiveurl=https://www.webcitation.org/6Dk3JcWKU?url=http://code.google.com/p/compcache/|archivedate=2013-01-17}}</ref> При этом использование алгоритмов сжатия увеличивает нагрузку на [[центральный процессор]], но освобождает значительное количество оперативной памяти по сравнению с использованием обычного RAM-диска.


Включён в стандартную поставку ядра Linux начиная с версии 3.14<ref>{{cite web
Включён в стандартную поставку ядра Linux начиная с версии 3.14<ref>{{cite web
Строка 9: Строка 10:
| title = 1.2. zram: Memory compression mechanism considered stable
| title = 1.2. zram: Memory compression mechanism considered stable
| work = Linux kernel 3.14
| work = Linux kernel 3.14
| date = 2014-03-30 | accessdate = 2014-04-01
| date = 2014-03-30
| accessdate = 2014-04-01
| publisher = kernelnewbies.org
| publisher = kernelnewbies.org
| archive-date = 2021-01-15
}}</ref>. Используется на Ubuntu Nexus 7.<ref name="phr_ubu_12">Michael Larabel, [http://www.phoronix.com/scan.php?page=news_item&px=MTI0NjQ Ubuntu Linux Considers Greater Usage Of zRAM] // Phoronix, 08.12.12</ref>, в [[Android]], [[CyanogenMod]], а также [[Google (компания)|Google]] использует его в [[ChromeOS]].
| archive-url = https://web.archive.org/web/20210115101454/https://kernelnewbies.org/Linux_3.14#head-72b295b09fea85de2e80f0b7850048264fed887e
| deadlink = no
}}</ref>. Используется на [[Ubuntu]] Nexus 7.<ref name="phr_ubu_12">Michael Larabel, [http://www.phoronix.com/scan.php?page=news_item&px=MTI0NjQ Ubuntu Linux Considers Greater Usage Of zRAM] {{Wayback|url=http://www.phoronix.com/scan.php?page=news_item&px=MTI0NjQ |date=20130501195115 }} // Phoronix, 08.12.12</ref>, в [[Android]], [[CyanogenMod]], а также [[Google (компания)|Google]] использует его в [[ChromeOS]].


== Алгоритмы сжатия ==
Существует сходный проект '''zswap''', сжимающий данные, записываемые в swap-раздел на диске.<ref>Seth Jennings, [http://lwn.net/Articles/537422/ The zswap compressed swap cache] // LWN, February 12, 2013</ref> Интегрирован в поставку ядра, начиная с версии 3.11.<ref>{{cite web|url=http://kernelnewbies.org/LinuxChanges|title=LinuxChanges|quote=Linux 3.11 was released on September 2, 2013 ...Linux 3.11 was released on September 2, 2013|publisher=kernelnewbies|accessdate=2013-10-21}}</ref>
Использует алгоритмы сжатия, предоставляемые модулем [[:en:Crypto API (Linux)|Linux Crypto API]]. По умолчанию это обычно [[LZO]] или [[LZ4]].


== Недостатки zram как раздела подкачки ==
Использует алгоритмы сжатия [[LZO]] или [[LZ4]]<ref>https://www.kernel.org/doc/Documentation/blockdev/zram.txt</ref>.
При наличии в системе нескольких разделов [[Подкачка страниц|подкачки]] zram-устройство, использующееся в качестве раздела подкачки страниц памяти, будет иметь более высокий приоритет, таким образом, все выгружаемые страницы попадут в первую очередь в zram-устройство. При переполнении этого раздела вновь выгружаемые страницы будут попадать в следующие, более медленные, swap-разделы, в результате чего появляется высокая вероятность возникновения LRU-инверсии.<ref>{{Cite web|url = https://together.jolla.com/question/75162/replacing-zram-with-zswap/|title = Replacing zram with zswap|access-date = 2020-10-07|archive-date = 2022-05-14|archive-url = https://web.archive.org/web/20220514123400/https://together.jolla.com/question/75162/replacing-zram-with-zswap/|deadlink = no}}</ref>

Таким образом, использование zram-устройства в качестве раздела подкачки страниц имеет смысл при отсутствии в системе разделов подкачки других типов.

== Отличие от zswap ==
zram часто путают со сходным модулем [[zswap]], который сжимает данные перехватывая попытки записи страниц памяти в swap-раздел на диске.

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

Начиная с версии ядра 4.14 пользователь имеет возможность указать для zram-устройства любое другое блочное устройство в качестве резервного хранилища, в которое могут выгружаться несжимаемые или неиспользуемые страницы памяти. При этом выгрузка страниц в резервное хранилище происходит в несжатом виде и, в отличие от zswap, только по команде администратора системы<ref>{{Cite web |url=https://www.kernel.org/doc/Documentation/blockdev/zram.txt |title=Архивированная копия |access-date=2016-10-31 |archive-date=2016-03-22 |archive-url=https://web.archive.org/web/20160322045542/https://www.kernel.org/doc/Documentation/blockdev/zram.txt |deadlink=no }}</ref>.


== См. также ==
== См. также ==
* [[zCache]]
* [[zCache]]

== Примечания ==
== Примечания ==
{{примечания}}
{{примечания}}
Строка 27: Строка 44:
* dark_dimikus (Дмитрий), [http://habrahabr.ru/post/172137/ Использование zRam для увеличения количества доступной памяти под Linux] // Хабрахабр
* dark_dimikus (Дмитрий), [http://habrahabr.ru/post/172137/ Использование zRam для увеличения количества доступной памяти под Linux] // Хабрахабр


[[Категория:Linux]]
[[Категория:Ядро Linux]]
[[Категория:Ядро Linux]]

Текущая версия от 10:53, 25 августа 2024

zRam, ранее известный как compcache, — модуль ядра Linux. Он создаёт в оперативной памяти сжатое блочное устройство (другими словами, RAM-диск со сжатием данных «на лету»), которое может использоваться, например, как устройство подкачки страниц, хранения временных файлов (/tmp) или же просто как RAM-диск общего назначения.

Хотя стоимость оперативной памяти сейчас[когда?] относительно низкая, zRam всё же позволяет получить преимущества на компьютерах с малым объёмом оперативной памяти, при виртуализации и во встраиваемых системах, использующих флеш-память, которая имеет ограниченное количество циклов перезаписи.[1] Скорость обмена с оперативной памятью выше, чем с жёстким диском, поэтому zRam, с учётом сжатия, как правило, позволяет Linux повысить производительность.[2][1] При этом использование алгоритмов сжатия увеличивает нагрузку на центральный процессор, но освобождает значительное количество оперативной памяти по сравнению с использованием обычного RAM-диска.

Включён в стандартную поставку ядра Linux начиная с версии 3.14[3]. Используется на Ubuntu Nexus 7.[4], в Android, CyanogenMod, а также Google использует его в ChromeOS.

Алгоритмы сжатия

[править | править код]

Использует алгоритмы сжатия, предоставляемые модулем Linux Crypto API. По умолчанию это обычно LZO или LZ4.

Недостатки zram как раздела подкачки

[править | править код]

При наличии в системе нескольких разделов подкачки zram-устройство, использующееся в качестве раздела подкачки страниц памяти, будет иметь более высокий приоритет, таким образом, все выгружаемые страницы попадут в первую очередь в zram-устройство. При переполнении этого раздела вновь выгружаемые страницы будут попадать в следующие, более медленные, swap-разделы, в результате чего появляется высокая вероятность возникновения LRU-инверсии.[5]

Таким образом, использование zram-устройства в качестве раздела подкачки страниц имеет смысл при отсутствии в системе разделов подкачки других типов.

Отличие от zswap

[править | править код]

zram часто путают со сходным модулем zswap, который сжимает данные перехватывая попытки записи страниц памяти в swap-раздел на диске.

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

Начиная с версии ядра 4.14 пользователь имеет возможность указать для zram-устройства любое другое блочное устройство в качестве резервного хранилища, в которое могут выгружаться несжимаемые или неиспользуемые страницы памяти. При этом выгрузка страниц в резервное хранилище происходит в несжатом виде и, в отличие от zswap, только по команде администратора системы[6].

Примечания

[править | править код]
  1. 1 2 Google Code compcache Compressed Caching for Linux (27 апреля 2010). Архивировано 17 января 2013 года.
  2. "Increased performance in Linux with zRam (virtual swap compressed in ram)". Web Upd8. 2011-10-02. Архивировано 14 февраля 2022. Дата обращения: 7 декабря 2012. {{cite news}}: |first= пропущен |last= (справка)
  3. 1.2. zram: Memory compression mechanism considered stable. Linux kernel 3.14. kernelnewbies.org (30 марта 2014). Дата обращения: 1 апреля 2014. Архивировано 15 января 2021 года.
  4. Michael Larabel, Ubuntu Linux Considers Greater Usage Of zRAM Архивная копия от 1 мая 2013 на Wayback Machine // Phoronix, 08.12.12
  5. Replacing zram with zswap. Дата обращения: 7 октября 2020. Архивировано 14 мая 2022 года.
  6. Архивированная копия. Дата обращения: 31 октября 2016. Архивировано 22 марта 2016 года.