zRam

zRam — модуль ядра Linux (ранее известный как compcache). Он создаёт в оперативной памяти сжатое блочное устройство (другими словами, 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].

См. также

  • zCache

Примечания

  1. 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 (2 октября 2011).
  3. 1.2. zram: Memory compression mechanism considered stable. Linux kernel 3.14. kernelnewbies.org (30 марта 2014). Дата обращения: 1 апреля 2014.
  4. Michael Larabel, Ubuntu Linux Considers Greater Usage Of zRAM // Phoronix, 08.12.12
  5. Replacing zram with zswap.
  6. https://www.kernel.org/doc/Documentation/blockdev/zram.txt

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.