Zmogljivost Raspberry Pi: dodajanje ZRAM-a in spreminjanje parametrov jedra

Pred nekaj tedni sem objavil Pregled Pinebook Pro. Ker tudi Raspberry Pi 4 temelji na ARM, so nekatere optimizacije, omenjene v prejšnjem članku, povsem primerne zanj. Rad bi delil te trike in videl, ali boste tudi vi občutili enake izboljšave delovanja.

Po namestitvi Raspberry Pi v svoj domača strežniška soba Opazil sem, da je v trenutkih pomanjkanja RAM-a postal zelo neodziven in celo zmrznil. Da bi rešil to težavo, sem dodal ZRAM in naredil nekaj sprememb v parametrih jedra.

Aktiviranje ZRAM na Raspberry Pi

Zmogljivost Raspberry Pi: dodajanje ZRAM-a in spreminjanje parametrov jedra

ZRAM ustvari blokovno shrambo v RAM-u z imenom /dev/zram0 (ali 1, 2, 3 itd.). Tam napisane strani so stisnjene in shranjene v pomnilniku. To omogoča zelo hiter V/I in tudi sprosti pomnilnik s stiskanjem.

Raspberry Pi 4 ima 1, 2, 4 ali 8 GB RAM-a. Uporabljal bom model z 1 GB, zato prosim prilagodite navodila glede na vaš model. Z 1 GB ZRAM bo privzeta izmenjalna datoteka (počasna!) manj pogosto uporabljena. Uporabil sem ta skript zram-swap za namestitev in samodejno konfiguracijo.

Navodila so na voljo v repozitoriju z zgornjo povezavo. Namestitev:

git clone https://github.com/foundObjects/zram-swap.git
cd zram-swap && sudo ./install.sh

Če želite urediti konfiguracijo:

vi /etc/default/zram-swap

Poleg tega lahko ZRAM aktivirate z namestitvijo zram-tools. Če uporabljate to metodo, ne pozabite urediti konfiguracije v datoteki /etc/default/zramswap, in namestite približno 1 GB ZRAM:

sudo apt install zram-tools

Po namestitvi si lahko ogledate statistiko shranjevanja ZRAM z naslednjim ukazom:

sudo cat /proc/swaps
Filename				Type		Size	Used	Priority
/var/swap                               file		102396	0	-2
/dev/zram0                              partition	1185368	265472	5
pi@raspberrypi:~ $

Dodajanje parametrov jedra za boljšo uporabo ZRAM-a

Zdaj pa popravimo obnašanje sistema, ko Raspberry Pi v zadnjem trenutku preklopi na zamenjavo, kar pogosto vodi do zamrznitev. V datoteko dodamo nekaj vrstic /etc/sysctl.conf in znova zaženite.

Te vrstice 1) bo odložil neizogibno izčrpanost spomina, povečanje pritiska na predpomnilnik jedra in 2) prej se začnejo pripravljati na izčrpanost spomina, ki vnaprej sprožijo zamenjavo. Vendar bo veliko bolj učinkovito zamenjati stisnjeni pomnilnik prek ZRAM-a!

Tukaj so vrstice, ki jih je treba dodati na konec datoteke /etc/sysctl.conf:

vm.vfs_cache_pressure=500
vm.swappiness=100
vm.dirty_background_ratio=1
vm.dirty_ratio=50

Nato ponovno zaženemo sistem ali aktiviramo spremembe z naslednjim ukazom:

sudo sysctl --system

vm.vfs_cache_pressure=500 poveča pritisk na predpomnilnik, kar poveča težnjo jedra, da ponovno pridobi pomnilnik, ki se uporablja za predpomnjenje imenikov in indeksnih objektov. Dlje časa boste porabili manj pomnilnika. Močan padec zmogljivosti je izničen s prejšnjo zamenjavo.

vm.swappiness = 100 poveča parameter, kako agresivno bo jedro zamenjalo pomnilniške strani, saj najprej uporabljamo ZRAM.

vm.dirty_background_ratio=1 & vm.dirty_ratio=50 - procesi v ozadju bodo začeli snemati takoj, ko bo dosežena omejitev 1 %, vendar sistem ne bo vsilil sinhronega V/I, dokler ne doseže dirty_ratio 50 %.

Te štiri vrstice (pri uporabi z ZRAM-om) bodo pomagale izboljšati zmogljivost, če jo imate neizogibno Zmanjka RAM-a in začne se prehod na swap, kot je moj. Če poznamo to dejstvo in upoštevamo tudi trikratno stiskanje pomnilnika v ZRAM-u, je bolje, da to zamenjavo začnemo vnaprej.

Pritisk na predpomnilnik pomaga, ker v bistvu sporočamo jedru: "Hej, poglej, nimam dodatnega pomnilnika, ki bi ga lahko uporabil za predpomnilnik, zato se ga čim prej znebi in shrani samo najpogosteje uporabljene/pomembne podatki."

Tudi z zmanjšanim predpomnjenjem, če je sčasoma večina nameščenega pomnilnika zasedena, bo jedro začelo oportunistično zamenjavo veliko prej, tako da CPU (stiskanje) in zamenjava V/I ne bosta čakala do zadnje minute in uporabila vse vire hkrati, ko prepozno je. ZRAM uporablja malo procesorja za stiskanje, vendar ima na večini sistemov z majhno količino pomnilnika veliko manjši vpliv na zmogljivost kot zamenjava brez ZRAM-a.

Na koncu

Poglejmo še enkrat rezultat:

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 v ZRAM je skoraj en gigabajt nestisnjenih podatkov. Vse je šlo v ZRAM in nič v veliko počasnejšo stransko datoteko. Preizkusite te nastavitve sami, delujejo na vseh modelih Raspberry Pi. Moj neuporaben, zamrzovalni sistem se je spremenil v delujočega in stabilnega.

Upam, da bom v bližnji prihodnosti nadaljeval in posodobil ta članek z nekaterimi rezultati testiranja sistema pred in po namestitvi ZRAM-a. Zdaj preprosto nimam časa za to. Medtem lahko izvajate lastne teste in mi to sporočite v komentarjih. Raspberry Pi 4 je zver s temi nastavitvami. Uživajte!

Na temo:

Vir: www.habr.com

Dodaj komentar