Kilka tygodni temu zamieściłem post
Po zainstalowaniu Raspberry Pi w twoim
Aktywacja ZRAM na Raspberry Pi
Raspberry Pi 4 jest wyposażony w 1, 2, 4 lub 8 GB pamięci RAM. Będę używać modelu 1 GB, więc dostosuj instrukcje do swojego modelu. Przy 1 GB ZRAM domyślny plik wymiany (wolny!) będzie używany rzadziej. Użyłem tego skryptu
Instrukcje znajdują się w repozytorium, do którego link znajduje się powyżej. Instalacja:
git clone https://github.com/foundObjects/zram-swap.git
cd zram-swap && sudo ./install.sh
Jeśli chcesz edytować konfigurację:
vi /etc/default/zram-swap
Ponadto możesz aktywować ZRAM poprzez instalację zram-tools
. Jeśli użyjesz tej metody, pamiętaj o edycji pliku config w pliku /etc/default/zramswap
i zainstaluj około 1 GB ZRAM:
sudo apt install zram-tools
Po instalacji możesz wyświetlić statystyki pamięci ZRAM za pomocą następującego polecenia:
sudo cat /proc/swaps
Filename Type Size Used Priority
/var/swap file 102396 0 -2
/dev/zram0 partition 1185368 265472 5
pi@raspberrypi:~ $
Dodanie parametrów jądra w celu lepszego wykorzystania ZRAM
Naprawmy teraz zachowanie systemu, gdy Raspberry Pi w ostatniej chwili przełącza się na swap, co często prowadzi do zawieszeń. Dodajmy kilka linii do pliku /etc/sysctl.conf i uruchom ponownie.
Te linie 1) opóźni nieuniknione wyczerpanie się pamięci, zwiększając obciążenie pamięci podręcznej jądra i 2) wcześniej zaczynają przygotowywać się na wyczerpanie pamięci, rozpoczynając wymianę z wyprzedzeniem. Ale znacznie wydajniejsza będzie wymiana skompresowanej pamięci przez ZRAM!
Oto linie, które należy dodać na końcu pliku /etc/sysctl.conf:
vm.vfs_cache_pressure=500
vm.swappiness=100
vm.dirty_background_ratio=1
vm.dirty_ratio=50
Następnie ponownie uruchamiamy system lub aktywujemy zmiany za pomocą następującego polecenia:
sudo sysctl --system
vm.vfs_cache_ Pressure=500 zwiększa wykorzystanie pamięci podręcznej, co zwiększa tendencję jądra do odzyskiwania pamięci używanej do buforowania obiektów katalogów i indeksów. Będziesz używać mniej pamięci przez dłuższy czas. Gwałtowny spadek wydajności jest niwelowany przez wcześniejszą zamianę.
vm.swappiness = 100 zwiększa parametr, jak agresywnie jądro będzie zamieniać strony pamięci, ponieważ najpierw używamy ZRAM.
vm.dirty_background_ratio=1 & vm.dirty_ratio=50 - procesy w tle rozpoczną nagrywanie natychmiast po osiągnięciu limitu 1%, ale system nie będzie wymuszał synchronicznych wejść/wyjść, dopóki nie osiągnie dirt_ratio wynoszącego 50%.
Te cztery linie (w przypadku użycia z ZRAM) pomogą poprawić wydajność, jeśli tak jest nieuchronnie Skończy się pamięć RAM i rozpoczyna się przejście do wymiany, tak jak moje. Wiedząc o tym, a także biorąc pod uwagę trzykrotną kompresję pamięci w ZRAM-ie, lepiej rozpocząć tę wymianę wcześniej.
Nacisk na pamięć podręczną pomaga, ponieważ w zasadzie mówimy jądru: „Hej, spójrz, nie mam żadnej dodatkowej pamięci do wykorzystania na pamięć podręczną, więc pozbądź się jej jak najszybciej i przechowuj tylko najczęściej używane/ważne dane."
Nawet przy zmniejszonym buforowaniu, jeśli z biegiem czasu większość zainstalowanej pamięci będzie zajęta, jądro rozpocznie oportunistyczną wymianę znacznie wcześniej, dzięki czemu procesor (kompresja) i zamiana wejść/wyjść nie będą czekać do ostatniej chwili i zużywać wszystkie zasoby na raz, gdy jest za późno. ZRAM wykorzystuje niewielką ilość procesora do kompresji, ale w większości systemów z małą ilością pamięci ma znacznie mniejszy wpływ na wydajność niż zamiana bez ZRAM.
Na zakończenie
Spójrzmy jeszcze raz na wynik:
pi@raspberrypi:~ $ free -h
total used free shared buff/cache available
Mem: 926Mi 471Mi 68Mi 168Mi 385Mi 232Mi
Swap: 1.2Gi 258Mi 999Mi
pi@raspberrypi:~ $ sudo cat /proc/swaps
Filename Type Size Used Priority
/var/swap file 102396 0 -2
/dev/zram0 partition 1185368 264448 5
264448 w ZRAM to prawie jeden gigabajt nieskompresowanych danych. Wszystko poszło do ZRAM-u i nic nie trafiło do znacznie wolniejszego pliku stronicowania. Wypróbuj te ustawienia samodzielnie, działają one na wszystkich modelach Raspberry Pi. Mój bezużyteczny, zamrażający system zamienił się w funkcjonalny i stabilny.
W najbliższej przyszłości mam nadzieję kontynuować i aktualizować ten artykuł o wyniki testów systemu przed i po instalacji ZRAM. Teraz po prostu nie mam na to czasu. W międzyczasie możesz przeprowadzić własne testy i dać mi znać w komentarzach. Raspberry Pi 4 to bestia z tymi ustawieniami. Cieszyć się!
Na temat:
Źródło: www.habr.com