Raspberry Pi teljesítmény: ZRAM hozzáadása és kernelparaméterek módosítása

Pár hete posztoltam Pinebook Pro értékelés. Mivel a Raspberry Pi 4 is ARM alapú, az előző cikkben említett optimalizálások közül néhány nagyon alkalmas rá. Szeretném megosztani ezeket a trükköket, és látni szeretném, hogy ugyanazokat a teljesítményjavulásokat tapasztalod-e.

Miután telepítette a Raspberry Pi-t otthoni szerverterem Észrevettem, hogy a RAM-hiány pillanataiban nagyon nem reagál, sőt le is fagyott. A probléma megoldása érdekében hozzáadtam a ZRAM-ot, és néhány változtatást végeztem a kernelparamétereken.

ZRAM aktiválása Raspberry Pi-n

Raspberry Pi teljesítmény: ZRAM hozzáadása és kernelparaméterek módosítása

ZRAM blokktárolót hoz létre a RAM-ban /dev/zram0 (vagy 1, 2, 3 stb.) néven. Az ott írt oldalakat tömörítik és a memóriában tárolják. Ez nagyon gyors I/O-t tesz lehetővé, és a tömörítés révén memóriát is felszabadít.

A Raspberry Pi 4 1, 2, 4 vagy 8 GB RAM-mal érkezik. Az 1 GB-os modellt fogom használni, ezért kérjük, módosítsa az utasításokat az Ön modellje alapján. 1 GB ZRAM esetén az alapértelmezett swap fájl (lassú!) ritkábban kerül felhasználásra. Ezt a szkriptet használtam zram-csere telepítéshez és automatikus beállításhoz.

Az utasításokat a fent hivatkozott adattárban találja. Telepítés:

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

Ha módosítani szeretné a konfigurációt:

vi /etc/default/zram-swap

Ezenkívül telepítéssel aktiválhatja a ZRAM-ot zram-tools. Ha ezt a módszert használja, mindenképpen módosítsa a konfigurációt fájlban /etc/default/zramswap, és telepítsen körülbelül 1 GB ZRAM-ot:

sudo apt install zram-tools

A telepítés után a következő paranccsal tekintheti meg a ZRAM tárolási statisztikáit:

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

Kernelparaméterek hozzáadása a ZRAM jobb használatához

Most javítsuk ki a rendszer viselkedését, amikor a Raspberry Pi az utolsó pillanatban vált át cserére, ami gyakran lefagyáshoz vezet. Adjunk hozzá néhány sort a fájlhoz /etc/sysctl.conf és indítsa újra.

Ezek a sorok 1) késlelteti az emlékezet elkerülhetetlen kimerülését, növelve a kernel gyorsítótárára nehezedő nyomást és 2) korábban kezdenek felkészülni a memória kimerülésére, a csere előzetes kezdeményezése. De sokkal hatékonyabb lesz a tömörített memóriát ZRAM-on keresztül cserélni!

Íme a sorok, amelyeket hozzá kell adni a fájl végéhez /etc/sysctl.conf:

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

Ezután újraindítjuk a rendszert, vagy aktiváljuk a változtatásokat a következő paranccsal:

sudo sysctl --system

vm.vfs_cache_pressure=500 növeli a gyorsítótár nyomását, ami növeli a kernel azon tendenciáját, hogy visszanyerje a könyvtár- és indexobjektumok gyorsítótárazásához használt memóriát. Hosszabb ideig kevesebb memóriát fog használni. A teljesítmény meredek visszaesését a korábbi csere tagadja.

vm.swappiness = 100 növeli a paramétert, hogy a kernel milyen agresszíven cseréli a memóriaoldalakat, mivel először ZRAM-ot használunk.

vm.dirty_background_ratio=1 és vm.dirty_ratio=50 - a háttérfolyamatok az 1%-os határ elérésekor azonnal megkezdik a rögzítést, de a rendszer nem kényszeríti ki a szinkron I/O-t, amíg el nem éri az 50%-os dirty_ratio értéket.

Ez a négy sor (ha a ZRAM-mal együtt használja) segít a teljesítmény javításában, ha van elkerülhetetlenül A RAM elfogy, és elkezdődik az átállás a cserére, mint az enyém. Ennek ismeretében, és figyelembe véve a ZRAM memória háromszoros tömörítését is, jobb, ha ezt a cserét előre elindítja.

A gyorsítótárra gyakorolt ​​nyomás segít, mert lényegében azt mondjuk a kernelnek: "Hé, nézd, nincs extra memóriám a gyorsítótárhoz, ezért kérlek, minél előbb megszabadulj tőle, és csak a leggyakrabban használt/fontosat tárold. adat."

Még csökkentett gyorsítótárazás mellett is, ha idővel a telepített memória nagy része el van foglalva, a kernel sokkal korábban elkezdi az opportunista cserét, így a CPU (tömörítés) és a csere I/O nem vár az utolsó pillanatig, és minden erőforrást egyszerre használ fel, amikor túl késő. A ZRAM kevés CPU-t használ a tömörítéshez, de a legtöbb kis memóriával rendelkező rendszeren sokkal kisebb a teljesítményre gyakorolt ​​hatása, mint a ZRAM nélküli csere.

Összefoglalva

Nézzük még egyszer 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 5

A 264448 a ZRAM-ban majdnem egy gigabájt tömörítetlen adat. Minden a ZRAM-ba ment, a sokkal lassabb oldalfájlba pedig semmi. Próbáld ki te is ezeket a beállításokat, minden Raspberry Pi modellen működnek. A használhatatlan, fagyasztó rendszerem működőképes és stabil rendszerré vált.

Remélem, hogy a közeljövőben folytatom és frissítem ezt a cikket a ZRAM telepítése előtti és utáni rendszertesztelés eredményeivel. Most egyszerűen nincs időm erre. Addig is nyugodtan futtasson saját teszteket, és tudassa velem a megjegyzésekben. A Raspberry Pi 4 egy vadállat ezekkel a beállításokkal. Élvezd!

A témában:

Forrás: will.com

Hozzászólás