- Что, черт возьми, они? чем они отличаются (я написал свое понимание в ответе ниже)
- В системе Zswap, когда страница выгружается из zswap в реальный своп, сохраняется ли она в сжатом виде? (или это распаковано перед сохранением?, AFAICT это все еще сжато, но я не уверен)
- Каково текущее состояние zcache? это было очевидно удалено или кое-что в 3.11. Что это значит? ( http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=96256460487387d28b8398033928e06eb9e428f7 )
kernel
performance
ram
swap
staticd
источник
источник
Ответы:
Что касается 2., zswap, похоже, распаковывает страницы при обратной записи, подтверждая комментарий @ Cbhihe.
mm / zswap.c , строка 828:
Таким образом, zswap полезен в ситуациях, когда сжатый встроенный кэш-память, скорее всего, будет забыт незадолго до обратной записи на диск. Это не для приложений с большими, долго живущими кучами, которые в конечном счете должны будут быть поддержаны фактическим устройством подкачки.
источник
В этих трех системах есть много вещей, но ни одна из них не делает простого сравнения между ними, не говоря уже о том, чтобы хорошо их объяснить. Я пытался понять это, но моя голова взорвалась. Потом я подумал, что получил его, поэтому я попытался записать его, и моя голова снова взорвалась. (см. краткое изложение реализаций) Я подумал, что будет полезно опубликовать это здесь, так как было много вопросов об обмене стеками, спрашивающих о парных сравнениях между ними.
Краткое изложение того, что использовать, когда:
Краткое описание их реализации:
Подробности:
ZRAM: делает устройство подкачки в оперативной памяти. Отправленные здесь страницы сжимаются по мере их хранения. Он имеет более высокий приоритет, чем другие устройства подкачки: выгруженные страницы предпочтительно отправляются на устройство zram до его заполнения, только тогда используются любые другие устройства подкачки.
ZSWAP:
frontswap
система перехватывает попытку выгрузить страницы и использует zswap в качестве обратной записи кэша для замены устройства HDD / SSD: попытка сжать страницу и , если он содержит плохо сжимаемые данные , которые он непосредственно записывается на диск. Если данные сжаты, они сохраняются в пуле памяти zswap. Если страницы выгружена из памяти , когда общее количество сжатых страниц в оперативной памяти превышает определенный размер, наименее недавно использовавшихся (LRU) сжимаются страница записывается на диск , как это вряд ли потребуется в ближайшее время .ZCache: это бэкэнд для системы памяти Transcendent. Трансцендентная память обеспечивает RAM-подобную память, к которой можно получить доступ только к странице за один раз, используя
put
иget
вызовы. Это не похоже на обычную память, к которой можно обращаться за байтом за раз. Перехватчикfrontswap
иcleancache
системы пытается обменять и вернуть кеш страниц файловой системы соответственно и отправить их в трансцендентный бэкэнд памяти. Когда zcache используется в качестве бэкэнда, данные сжимаются и сохраняются в оперативной памяти. Когда он заполняется, сжатые страницы высвобождаются в своп. (альтернативным бэкэндом является RAMster, который разделяет пул оперативной памяти между сетевыми компьютерами). Использование толькоfrontswap
внешнего интерфейса сzcache
бэкэндом работает точно так жеzswap
. (На самом деле zswap - это упрощенное подмножество zcache)Лучшие ресурсы, которые я нашел, были:
источник
zswap
. Здесь детали askubuntu.com/a/361321/25388zram
этоswap
абсолютно неправильно.zram
НЕ ЯВЛЯЕТСЯswap
.swap
Только могут быть сохранены вzram
. Но это один из многих возможных вариантов использования! Вот пример: «Некоторые примеры использования включают в себя хранилище / tmp, использование в качестве дисков подкачки, различные кэши в / var и, возможно, многие другие :)». Kernel.org/doc/Documentation/blockdev/zram.txt Например, я использую его для временное хранилище, которое я форматирую и монтирую как любое другое обычное блочное устройство.