Я пытался понять разницу в вариантах использования для Zswap, Zram и Zcache. Заранее извиняюсь за длинный / слегка небрежно сформулированный вопрос. Я провел множество поисков в Google, и я понимаю, что zram - это в основном блочное устройство для сжатого подкачки, в то время как zswap сжимает в ядре, используя API-интерфейс frontswap. Похоже, что одним из преимуществ zswap является то, что он может переместить некоторые страницы в бэк-своп, когда находится под давлением в режиме LRU, в то время как zram не может этого сделать (пожалуйста, подтвердите, не уверен, верно ли это).
Итак, вот мой вопрос: 1.) Как пользователь настольного компьютера, какая разница в производительности между zcache / zswap / zram, особенно zswap и zram? Например, намного ли лучше / хуже фрагментация памяти (та, которая приводит к чрезмерному использованию памяти и растрате)?
Дополнительный вопрос: 2.) Существует ли вероятная идеальная комбинация вышеперечисленного (скажем, zram + zswap или zram + zcache) для производительности рабочего стола (включая отзывчивость рабочего стола, плюс минимально разрушительное поведение подкачки и рациональное управление памятью)?
* Цитирование источников высоко ценится.
Я должен добавить, что я достаточно опытный пользователь Linux (5 лет) и пытался по-настоящему понять, как работает моя система, включая ядро. Тем не менее, я не программист, и имею только базовые знания по программированию (3 кредита в колледже). Но будьте техническими, если вам нужно; Я разберусь с тобой в свое время.
Системные характеристики:
Linux Mint 15
Processor:Core 2 Quad 6600 (2.4ghz)
Ram: 8G
linux kernel: liquorix 3.11 series
Storage: 128 GB SSD, 1TB HDD 5400rpm
Никаких комментариев "купи больше оперативной памяти", пожалуйста! Я увеличил скорость на этой материнской плате, и в обозримом будущем у меня будет бюджет на обновление $ 0. Однако я предпочитаю сохранять программы с большой памятью (основными потребителями моей памяти являются несколько браузеров), поэтому я не возражаю против замены в разумных пределах снижения производительности.
источник
Ответы:
Лучший способ, которым я могу попытаться ответить на эти вопросы, состоит в том, чтобы сказать, что эти три на самом деле.
zRAM
По сути, zRAM - не более чем устройство подкачки. Управление памятью будет выдавать страницы на устройство подкачки, а zRAM сжимает эти данные, распределяя память по мере необходимости.
Zswap
Zswap - это сжатое пространство подкачки, которое выделяется ядром внутри и не отображается как устройство подкачки. Он используется в frontswap таким же образом, как и устройство подкачки, но более эффективным образом.
Zcache
Zcache - это фронтенд для очистки фронта и очистки.
Zcache заменяет zRAM, так что вы не хотите, чтобы они оба сражались за ресурсы, хотя есть некоторые разговоры о том, как они могут хорошо работать вместе при правильных обстоятельствах. На данный момент я бы не стал пытаться, чтобы эксперты могли это выяснить.
Некоторое чтение:
Cleancache против Zram?
https://lwn.net/Articles/454795/
https://www.kernel.org/doc/Documentation/vm/zswap.txt
http://www.zeropoint.com/Support/ZCache/ZCachePro/ZCacheAdvantages.html
Лично я только что отключил zRAM и включил Zcache на всех моих системах с достаточно новым ядром (zRAM все еще включен на устройствах Android).
Что касается производительности: это то, что вы должны смотреть в себя. Все разные. Тем не менее, теоретически Zcache должен быть гораздо более эффективным по сравнению с zRAM и работать на двух уровнях (frontswap и cleancache), и при необходимости он может выгружаться на устройство подкачки (например, на жесткий диск). Вы также можете выбрать, какой алгоритм сжатия использовать, если он использует слишком много ЦП (что я не могу себе представить).
Обновление : Zcache был удален из ядра 3.11 (пока), поэтому zRAM снова стал единственным вариантом в более новых ядрах. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1256503/comments/3 http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git / фиксации /? ID = 96256460487387d28b8398033928e06eb9e428f7
источник
zswap.enabled=1
в командную строку Linux.