ZRam: различия между версиями
[отпатрулированная версия] | [непроверенная версия] |
Gromolyak (обсуждение | вклад) мНет описания правки Метки: с мобильного устройства через мобильное приложение |
→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 всё же позволяет получить преимущества на |
Хотя стоимость оперативной памяти сейчас{{неопределённость|когда?}} относительно низкая, 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 |
| 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 2 Google Code compcache Compressed Caching for Linux (27 апреля 2010). Архивировано 17 января 2013 года.
- ↑ "Increased performance in Linux with zRam (virtual swap compressed in ram)". Web Upd8. 2011-10-02. Архивировано 14 февраля 2022. Дата обращения: 7 декабря 2012.
{{cite news}}
:|first=
пропущен|last=
(справка) - ↑ 1.2. zram: Memory compression mechanism considered stable . Linux kernel 3.14. kernelnewbies.org (30 марта 2014). Дата обращения: 1 апреля 2014. Архивировано 15 января 2021 года.
- ↑ Michael Larabel, Ubuntu Linux Considers Greater Usage Of zRAM Архивная копия от 1 мая 2013 на Wayback Machine // Phoronix, 08.12.12
- ↑ Replacing zram with zswap . Дата обращения: 7 октября 2020. Архивировано 14 мая 2022 года.
- ↑ Архивированная копия . Дата обращения: 31 октября 2016. Архивировано 22 марта 2016 года.
Ссылки
[править | править код]- Nitin Gupta, Compcache: in-memory compressed swapping // LWN, May 26, 2009
- Dan Magenheimer, In-kernel memory compression // LWN, April 3, 2013
- dark_dimikus (Дмитрий), Использование zRam для увеличения количества доступной памяти под Linux // Хабрахабр