Néhány héttel ezelőtt közzétettem . Mivel a Raspberry Pi 4 is ARM-ra épül, így egyes optimalizációk, amelyekről a korábbi cikkben szó esett, jól alkalmazhatók rá. Szeretném megosztani ezeket a trükköket és megtudni, hogy hasonló teljesítménynövekedések tapasztalhatók-e nálatok is.
A Raspberry Pi telepítése után a észrevettem, hogy amikor a memóriából hiány van, nagyon reagálatlan lett, sőt még meg is akadt. E probléma megoldására ZRAM-ot adtam hozzá, és néhány módosítást végeztem a kernel paramétereiben.
A ZRAM aktiválása a Raspberry Pi-n

a RAM-ban egy blokktárolót hoz létre a /dev/zram0 (vagy 1, 2, 3 stb.) néven. Ide írva az oldalak tömörítve és memóriában tárolva lesznek. Ez nagyon gyors I/O-t biztosít, és felszabadít memóriát a tömörítés által.
A Raspberry Pi 4 1, 2, 4 vagy 8 GB RAM-mal érkezik. Én az 1 GB-os modellt fogom használni, ezért a utasítást a saját modelledhez igazítsd. Az 1 GB-os ZRAM-nál a default swap fájl (lassú!) ritkábban fog használatban lenni. Egy ilyen szkriptet használtam a telepítés és az automatikus konfigurálás érdekében.
A telepítési utasítások a fenti linken található repo-ban találhatók. Telepítés:
git clone https://github.com/foundObjects/zram-swap.git
cd zram-swap && sudo ./install.shHa szeretnéd szerkeszteni a konfigurációt:
vi /etc/default/zram-swap Továbbá a ZRAM aktiválható a zram-tools. telepítésével is. Ha ezt a módszert használod, mindenképpen szerkeszd a konfigurációt a fájlban /etc/default/zramswap, és állíts be körülbelül 1 GB ZRAM-ot:
sudo apt install zram-toolsA telepítés után a ZRAM tároló statisztikáját a következő paranccsal tekintheted meg:
sudo cat /proc/swaps
Filename Type Size Used Priority
/var/swap file 102396 0 -2
/dev/zram0 partition 1185368 265472 5
pi@raspberrypi:~ $Kernel paraméterek hozzáadása a ZRAM jobb kihasználása érdekében
Most javítsuk a rendszer viselkedését, amikor a Raspberry Pi utolsó pillanatban vált swapra, ami gyakran akadásokat okoz. Adjunk hozzá néhány sort a fájlhoz /etc/sysctl.conf majd indítsuk újra a rendszert.
Ezek a sorok 1) késleltetik a memória elkerülhetetlen kimerülését, növelve a kernel cache nyomását és 2)korábban kezdik meg a memória kimerülésének előkészületeit, előre inicializálva a swapot. De ez sokkal hatékonyabb swapot jelent a tömörített memória révén a ZRAM-on keresztül!Íme a sorok, amelyeket a fájl végére kell hozzáadni:
vm.vfs_cache_pressure=500 vm.swappiness=100 vm.dirty_background_ratio=1 vm.dirty_ratio=50 /etc/sysctl.conf:
vm.vfs_cache_pressure=500
vm.swappiness=100
vm.dirty_background_ratio=1
vm.dirty_ratio=50Ezután újraindítjuk a rendszert, vagy aktiváljuk a módosításokat a következő parancs segítségével:
sudo sysctl --systemvm.vfs_cache_pressure=500 növeli a cache-re nehezedő nyomást, ami fokozza a kernel hajlandóságát a memória újrahasznosítására, amelyet a könyvtár- és indexobjektumok gyorsítótárazásához használnak. Kevesebb memória használatára fog kerülni hosszabb időn keresztül. Az éles teljesítménycsökkenés kompenzálja a korábbi swap-elést.
vm.swappiness=100 növeli a paramétert, hogy a kernel mennyire agresszívan hajtja végre a swap-elést, mivel először a ZRAM-ot használjuk.
vm.dirty_background_ratio=1 & vm.dirty_ratio=50 — a háttérfolyamatok azonnal elkezdenek írni, amint elérik az 1%-os határt, de a rendszer nem kényszeríti a szinkron I/O-t, amíg el nem éri az 50%-os dirty_ratio-t.
Ezek a négy sor (ZRAM használatával) segítenek a teljesítmény javításában abban az esetben, ha elkerülhetetlenül elfogy a RAM, és elkezdődik a swap-elés, mint nálam. E tény tudatában, valamint a ZRAM memóriasűrítésének köszönhetően, amely háromszor jobb, érdemes ezt a swap-elést korábban megkezdeni.
A cache-re nehezedő nyomás segít, mert gyakorlatilag azt mondjuk a kernelnek: „Hé, figyelj, nincs plusz memóriám, hogy cache-ként használjam, szóval kérlek, szabadulj meg tőle minél hamarabb, és tárold csak a leggyakrabban használt/változó adatokat”.
Még a cache csökkentése mellett is, ha idővel a telepített memória nagy része foglalt lesz, a kernel korábban fog opportunista swapelést végrehajtani, így a processzor (sűrítés) és az I/O swapelés nem fogja megvárni az utolsó pillanatot, hogy minden erőforrást egyszerre használjon fel, amikor már túl késő. A ZRAM kicsit igénybe veszi a CPU-t a sűrítéshez, de a legtöbb alacsony memóriájú rendszerben ez sokkal kisebb hatással van a teljesítményre, mint swap nélkül ZRAM-mal.
Végül
Nézzük meg újra az eredményt:
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 5264448 a ZRAM-ban — ez majdnem egy gigabájt tömörítetlen adat. Minden átkerült a ZRAM-ba, és semmi nem ment a sokkal lassabb swap fájlba. Próbálja ki ezeket a beállításokat, működnek minden Raspberry Pi modellen. Az én akadozó, működésképtelen rendszerem működőképes és stabil lett.
A közeljövőben remélem, hogy folytatom és frissítem ezt a cikket néhány teszt eredménnyel a ZRAM telepítése előtt és után. Jelenleg egyszerűen nincs rá időm. De addig ne habozz, végezd el a saját tesztjeidet, és tudasd velünk a megjegyzésekben. A Raspberry Pi 4 egyszerűen egy szörnyeteg ilyen beállításokkal. Élvezd!
A témában:
- (2017)
- (2020)
Forrás: habr.com
