Cleancache vs zram?

9

Mam tutaj starego laptopa z tylko 512 MB pamięci RAM. Od czasu kilku wydań jądra używam zram do konwersji 256 MB tego pliku na skompresowany ramdysk, który jest następnie używany jako swap. Okazało się to bardzo skuteczne, a system jest znacznie bardziej responsywny, znacznie zmniejszyło się użycie wymiany (kopii zapasowej na dysku twardym), co wcześniej spowolniło system.

Od Linuksa 3.0 jądro zawiera również cleancache, który, używając czegoś takiego jak zram jako backend, ma na celu przezroczyste kompresowanie stron z pamięci podręcznej stron. O ile widzę to różni się od zram .

Czy powinienem włączyć oba na moim laptopie? A może Cleancache faktycznie zastępuje rozwiązanie ZRAM ?

Edycja: Znalazłem ten link do forum Gentoo , gdzie wydaje się, że muszę również włączyć, CONFIG_ZCACHEktóry następnie powoduje, że cleancache używa zram, aby uzyskać coś podobnego do tego, co miałem wcześniej. Wygląda więc na to, że włączam to wszystko i nie używam później zram wyraźnie. Czy ktoś może to potwierdzić?

lytenyn
źródło

Odpowiedzi:

9

Zram tworzy urządzenie blokowe wspierane przez skompresowany RAM. Możesz użyć tego urządzenia blokowego do zamiany. Zwykle ciśnienie pamięci najpierw powoduje odrzucenie pamięci podręcznej i dopiero po zwolnieniu większości pamięci podręcznej i zapełnieniu pamięci system zaczyna zamieniać się.

CleanCache umożliwia migrację stron z pamięci podręcznej stron do zaplecza, takiego jak xen tmem, który jest zarządzany przez hiperwizor i współdzielony przez wielu gości VM. Ma to na celu umożliwienie wielu gościom VM buforowania tych samych danych przy użyciu tego samego pamięci RAM, zamiast posiadania przez nich własnej pamięci podręcznej z własną kopią tych samych danych.

ZCache to kolejne zaplecze CleanCache. Zamiast przekazywać pamięć do hiperwizora do zatrzymania (dotyczy to tylko środowiska Xen VM), przechowuje on strony pamięci podręcznej skompresowane w pamięci RAM, podobnie jak Zram. Różnica polega na tym, że ZCache transparentnie przechowuje strony pamięci podręcznej, ale Zram tworzy urządzenie blokowe, którego można użyć do wymiany.

Jeśli masz aplikacje wymagające dużej ilości pamięci, będziesz potrzebował przestrzeni wymiany do ich obsługi, więc nadal będziesz chciał używać zram (prawdopodobnie z bardzo wysoką wartością swapiness). Wynika to z faktu, że CleanCache kompresuje tylko strony pamięci podręcznej; pamięć aplikacji musi zostać wysłana do zamiany. Jeśli nie używasz całej pamięci w aplikacjach, możesz użyć CleanCache z backendem ZCache, aby efektywniej wykorzystać pozostałą pamięć do buforowania dysku poprzez kompresję bufora dysku. Możesz nawet użyć kombinacji dwóch technik.

psusi
źródło
OK, dziękuję, więc strony pamięci podręcznej służą tylko do buforowania dysku, a nie pamięci aplikacji. To nie było dla mnie jasne.
lytenyn
7

Jako dodatek do powyższej odpowiedzi zobacz także https://lwn.net/Articles/454795, aby uzyskać szczegółowe wyjaśnienie technologii.

Z tego, co rozumiem, zram zostanie zastąpiony przez frontswap , który nie jest jeszcze w jądrze głównym, ale ma tę zaletę, że nie trzeba konfigurować żadnego stałego rozmiaru wymiany. Ułatwi to włączenie zarówno czyszczenia pamięci podręcznej, jak i zamiany frontów (zamiast zram i czyszczenia pamięci, gdzie pamięć używana dla zram nie może być używana do czyszczenia pamięci ).

lytenyn
źródło