- Co to do cholery są? czym się różnią (napisałem moje zrozumienie w odpowiedzi poniżej)
- Czy w systemie Zswap strona jest eksmitowana z zswap do faktycznej wymiany, czy jest ona przechowywana w skompresowanym pliku? (czy jest dekompresowany przed zapisaniem ?, AFAICT jest nadal kompresowany, ale nie jestem pewien)
- Jaki jest obecny stan Zcache? najwyraźniej został usunięty lub coś w 3.11. Co to znaczy? ( http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=96256460487387d28b8398033928e06eb9e428f7 )
kernel
performance
ram
swap
staticd
źródło
źródło
Odpowiedzi:
Odnośnie 2., zswap wydaje się dekompresować strony podczas zapisu zwrotnego, potwierdzając komentarz @ Cbhihe.
mm / zswap.c , linia 828:
Zswap jest więc użyteczny w sytuacjach, w których skompresowana pamięć podręczna pamięci RAM prawdopodobnie zostanie wkrótce zapomniana przed zapisaniem na dysku. Nie dotyczy aplikacji z dużymi, długimi stertami, które ostatecznie będą musiały być wspierane przez rzeczywiste urządzenie wymiany.
źródło
Istnieje wiele rzeczy na temat tych trzech systemów, ale żaden z nich nie pozwala na proste porównanie między nimi, nie mówiąc już o ich dobrym wytłumaczeniu. Próbowałem to zrozumieć, ale moja głowa eksplodowała. Potem pomyślałem, że go dostałem, więc spróbowałem go zapisać, a moja głowa znów wybuchła. (patrz podsumowanie implementacji) Pomyślałem, że przyda się to tutaj, ponieważ było wiele pytań dotyczących wymiany stosów, które dotyczyły porównań parami między nimi.
Podsumowanie, z czego korzystać, gdy:
Podsumowanie ich realizacji:
Detale:
ZRAM: Zmienia urządzenie pamięci RAM. Strony wysłane tutaj są kompresowane podczas ich przechowywania. Ma wyższy priorytet niż inne urządzenia wymiany: zamienione strony są preferencyjnie wysyłane do urządzenia zram, aż do zapełnienia, tylko wtedy używane są inne urządzenia wymiany.
ZSWAP: Te
frontswap
haki system próbuje zamienić się stron i wykorzystuje zswap jako write-back cache dla urządzenia wymiany HDD / SSD: Podjęto próbę skompresować stronę i jeśli zawiera słabo dane ściśliwe jest bezpośrednio zapisywane na dysku. Jeśli dane są skompresowane, są przechowywane w puli pamięci zswap. Jeśli strony zostaną zamienione z pamięci, gdy łączna liczba skompresowanych stron w pamięci RAM przekroczy określony rozmiar, strona z kompresją Najmniej ostatnio używana (LRU) zostanie zapisana na dysku, ponieważ prawdopodobnie nie będzie potrzebna wkrótce.ZCache: Jest to backend dla systemu pamięci Transcendent. Pamięć transcendentna zapewnia pamięć RAM, do której można uzyskać dostęp tylko do strony na raz za pomocą
put
iget
wywołań. Jest to odmienne od normalnej pamięci, do której można uzyskać dostęp do bajtu naraz.frontswap
Icleancache
systemy prób hakowe do wymiany i odzyskanie plików systemowych odpowiednio buforuje stron i wysłać je do transcendentnych backendów pamięci. Gdy zcache jest używany jako backend, dane są kompresowane i przechowywane w pamięci RAM. Gdy się zapełni, skompresowane strony są eksmitowane na wymianę. (alternatywnym backendem jest RAMster, który dzieli pulę pamięci RAM na komputerach w sieci). Używanie tylkofrontswap
frontendu zzcache
backendem działa tak samozswap
. (W rzeczywistości zswap jest uproszczonym podzbiorem zcache)Najlepsze zasoby, które znalazłem, to:
źródło
zswap
. Tutaj szczegóły askubuntu.com/a/361321/25388zram
jest,swap
jest całkowicie błędna.zram
NIE JESTswap
.swap
Tylko mogą być przechowywane wzram
. Ale jest to jeden z wielu możliwych przypadków użycia! Oto przykład: „Niektóre przypadki użycia obejmują pamięć / tmp, używają jako dyski wymiany, różne pamięci podręczne w / var i może wiele innych :)” kernel.org/doc/Documentation/blockdev/zram.txt Na przykład używam go do pamięć tymczasowa, którą formatuję i montuję jak każde normalne urządzenie blokowe.