Zswap, Zram, Zcache сценарии использования рабочего стола


11

Я пытался понять разницу в вариантах использования для 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. Однако я предпочитаю сохранять программы с большой памятью (основными потребителями моей памяти являются несколько браузеров), поэтому я не возражаю против замены в разумных пределах снижения производительности.


Ответы:


7

Лучший способ, которым я могу попытаться ответить на эти вопросы, состоит в том, чтобы сказать, что эти три на самом деле.

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


1
Zswap включен в последних версиях ядра, добавив zswap.enabled=1в командную строку Linux.
Кен Шарп
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.