Konfiguruję i kompiluję nowe jądro 3.0. Jednym z korzyści, które planowałem używać przez jakiś czas (przez łatanie), które zostały połączone w 3.0, jest zram.
Czy można ustawić zarówno HDD SWAP, jak i ZRAM SWAP, aby ZRAM był używany jako pierwszy i tylko rozlane strony były umieszczane w rzeczywistej zamianie?
linux
swap
zram
virtual-memory
Maciej Piechotka
źródło
źródło
max_comp_streams
wydaje się to1
zgodne z dokumentacją . Nie sprawdziłem, czy ten parametr istniał w 2011 roku, ale wydaje się, że jest to lepsza opcja niż wiele plików wymiany.zram-config
pod Ubuntu (i prawdopodobnie Debianem) zauważyłem, że domyślna konfiguracja to 1 na rdzeń lub wątek (2 na starym dwurdzeniowym E2140 i 4 na i3-3220)swapon
mają-p
przełącznik, który ustawia priorytet. Mogę skonfigurować:Lub w / etc / fstab:
EDYCJA: Tylko dla pełnego rozwiązania - taka linia może być pomocna jako zasada udev:
źródło
Wybierz, ile urządzeń zram chcesz, przekazując
do parametrów jądra lub bezpośrednio do modułu (bez zram.). Wartość domyślna to 1. zram będzie mógł wykorzystać tyle procesorów, ile urządzeń utworzysz.
Przygotuj urządzenie ZRAM0, ustaw rozmiar na 1 GB.
Alternatywnie możesz to zrobić według reguły udev. Utwórz swap na zram0
i włącz go z wyższym priorytetem niż inne urządzenia wymiany
źródło
zram0
izram1
do wartości 10 na 2 jądra Intel T9300 polu, to wyrzuca mi:swapon: /dev/zram0 or 1: swapon failed: Device or resource busy
.Z jakiegoś powodu wydaje się, że istnieje wiele błędnych interpretacji https://www.kernel.org/doc/Documentation/blockdev/zram.txt
Wyraźnie stwierdza:
Ale istnieje powszechny, uporczywy mit miejski, że maksymalna liczba strumieni wynosi 1.
To po prostu nieprawda.
Dwa systemy operacyjne, w których zram udowodnił, że system operacyjny Chrome i Android to jedno urządzenie. Również poprawiają
page-cluster
:- z dokumentacji jądra dla
/proc/sys/vm/*
Więc użyj,
echo "0" > /proc/sys/vm/page-cluster
aby wymusić pojedynczą stronę.Wydaje się, że wiele pochodzi z zram_config pakietu debian / ubuntu, który z jakiegoś powodu wydaje się mieć bardzo małą korelację z dokumentami jądra dla zram i wyhodował serię chińskich szeptów, które w istocie mogą być całkowicie błędne.
Czy za pomocą wymiany plików tworzysz dysk wymiany dla każdego rdzenia? Może to może odpowiedzieć na twoje pytania. Również w celu wykonania kopii zapasowej Googles Chrome OS i Android, które z powodzeniem wykorzystują powyższy klaster stron, ponieważ nie pasuje on do dysku, dzięki czemu można poprawić opóźnienia, pojedyncze urządzenia.
Również dla sys-admin, co jest ważne faktyczne użycie mem lub użycie mem vm? Większość przykładów pokazuje tworzenie za pomocą disk_size i całkowicie ignoruje mem_limit. disk_size = nieskompresowany rozmiar VM. mem_limit = rzeczywisty limit powierzchni pamięci mem.
To sprawia, że wybór rozmiaru dysku jest mylący, ponieważ jego wirtualny maksymalny rozmiar zależy od współczynnika comp_alg i narzutu wynoszącego 0,1% rozmiaru dysku, gdy nie jest używany, i tak naprawdę jest szacunkiem wartości mem_limit * (około 2–4) oszczędności optymizm.
zram_config nawet nie sprawdza wcześniejszego użycia usługi i zastępuje, podczas gdy proste sprawdzanie klasy zram sys, jak poniżej.
źródło
Gdy włączysz zram, automatycznie będzie miał priorytet.
W przypadku Ubuntu 16.04:
/usr/bin/init-zram-swapping
Możesz edytować ten plik (wykonać kopię zapasową na 1.), aby obniżyć używany prawdziwy pamięci RAM, zmieniłem linię mem na to:
źródło