Cleancache против Zram?

9

У меня есть старый ноутбук с 512 МБ ОЗУ. Начиная с нескольких выпусков ядра, я использую zram для преобразования 256 МБ его в сжатый виртуальный диск, который затем используется в качестве подкачки. Это оказалось очень успешным, и система стала намного более отзывчивой, использование свопа (на жестком диске) значительно снизилось, что раньше замедляло работу системы.

Начиная с linux 3.0, ядро ​​также включает cleancache, который, используя нечто вроде zram в качестве бэкэнда, должен прозрачно сжимать страницы из кеша страниц. Насколько я вижу, это отличается от Zram .

Должен ли я включить оба на моем ноутбуке? Или cleancache на самом деле заменяет решение Zram ?

Редактировать: Я нашел эту ссылку на форуме Gentoo , где, кажется, мне также нужно включить, CONFIG_ZCACHEчто затем заставляет cleancache использовать zram для получения чего-то похожего на то, что у меня было раньше. Таким образом, кажется, что я включаю все это и не использую zram явно позже. Кто-нибудь может это подтвердить?

lytenyn
источник

Ответы:

9

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

CleanCache позволяет переносить страницы из кэша страниц на серверную часть, такую ​​как xen tmem, которая является памятью, управляемой гипервизором и совместно используемой несколькими гостями виртуальных машин. Цель этого состоит в том, чтобы разрешить нескольким гостям виртуальных машин кэшировать одни и те же данные, используя один и тот же ОЗУ, вместо того, чтобы у каждого был свой кэш со своей копией тех же данных.

ZCache - это еще один внутренний интерфейс CleanCache. Вместо передачи памяти гипервизору для хранения (что применимо только в том случае, если вы используете среду виртуальной машины Xen), он сохраняет страницы кэша, сжатые в оперативной памяти, аналогично Zram. Разница в том, что ZCache прозрачно хранит страницы кэша, но Zram создает блочное устройство, которое вы можете использовать для подкачки.

Если у вас есть приложения, требующие памяти, вам потребуется пространство подкачки для их поддержки, поэтому вы все равно захотите использовать zram (вероятно, с очень высоким значением перестановки). Это потому, что CleanCache сжимает только страницы кэша; память приложения должна быть отправлена ​​на подкачку. Если вы не используете всю свою память в приложениях, то вы можете использовать CleanCache с бэкэндом ZCache, чтобы более эффективно использовать оставшуюся память для кэширования диска путем сжатия дискового кэша. Вы можете даже использовать сочетание двух техник.

psusi
источник
Хорошо, спасибо, поэтому страницы кэша предназначены только для кэширования диска, а не для памяти приложения. Это было не ясно для меня.
Литенин
7

В дополнение к приведенному выше ответу, также см. Https://lwn.net/Articles/454795 для подробного объяснения технологии.

Из того, что я понимаю, zram будет заменен на frontswap , который еще не находится в основном ядре, но имеет то преимущество, что не нужно настраивать фиксированный размер подкачки. Это упростит включение как cleancache, так и frontswap (вместо zram и cleancache , где память, используемая для zram, не может использоваться для cleancache ).

lytenyn
источник