Výkon Raspberry Pi: přidání ZRAM a změna parametrů jádra

Před pár týdny jsem zveřejnil Recenze Pinebook Pro. Vzhledem k tomu, že Raspberry Pi 4 je také založeno na ARM, některé optimalizace zmíněné v předchozím článku se pro něj docela hodí. Rád bych se o tyto triky podělil a zjistil, zda zaznamenáte stejná zlepšení výkonu.

Po instalaci Raspberry Pi do vašeho domácí serverovna Všiml jsem si, že ve chvílích nedostatku RAM přestala velmi reagovat a dokonce zamrzla. Abych tento problém vyřešil, přidal jsem ZRAM a provedl pár změn v parametrech jádra.

Aktivace ZRAM na Raspberry Pi

Výkon Raspberry Pi: přidání ZRAM a změna parametrů jádra

ZRAM vytvoří blokové úložiště v RAM s názvem /dev/zram0 (nebo 1, 2, 3 atd.). Stránky tam zapsané jsou komprimovány a ukládány do paměti. To umožňuje velmi rychlé I/O a také uvolňuje paměť prostřednictvím komprese.

Raspberry Pi 4 je dodáván s 1, 2, 4 nebo 8 GB RAM. Budu používat 1GB model, proto prosím upravte pokyny podle vašeho modelu. S 1 GB ZRAM bude výchozí odkládací soubor (pomalý!) používán méně často. Použil jsem tento skript zram-swap pro instalaci a automatickou konfiguraci.

Pokyny jsou uvedeny ve výše uvedeném úložišti. Instalace:

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

Pokud chcete upravit konfiguraci:

vi /etc/default/zram-swap

Kromě toho můžete aktivovat ZRAM instalací zram-tools. Pokud používáte tuto metodu, nezapomeňte upravit konfiguraci v souboru /etc/default/zramswapa nainstalujte přibližně 1 GB ZRAM:

sudo apt install zram-tools

Po instalaci můžete zobrazit statistiku úložiště ZRAM pomocí následujícího příkazu:

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

Přidání parametrů jádra pro lepší využití ZRAM

Nyní opravme chování systému, když se Raspberry Pi na poslední chvíli přepne na swapování, což často vede k zamrzání. Přidejme do souboru pár řádků /etc/sysctl.conf a restartujte.

Tyto řádky 1) oddálí nevyhnutelné vyčerpání paměti, zvýšení tlaku na mezipaměť jádra a 2) připravte se na vyčerpání paměti dříve, zahájí výměnu předem. Mnohem efektivnější ale bude swapovat komprimovanou paměť přes ZRAM!

Zde jsou řádky, které je třeba přidat na konec souboru /etc/sysctl.conf:

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

Poté restartujeme systém nebo aktivujeme změny pomocí následujícího příkazu:

sudo sysctl --system

vm.vfs_cache_pressure=500 zvyšuje tlak mezipaměti, což zvyšuje tendenci jádra získávat zpět paměť používanou k ukládání adresářů a indexových objektů do mezipaměti. Po delší dobu spotřebujete méně paměti. Prudký pokles výkonu je negován dřívější výměnou.

vm. swappiness = 100 zvyšuje parametr, jak agresivně bude jádro vyměňovat paměťové stránky, protože nejprve používáme ZRAM.

vm.dirty_background_ratio=1 & vm.dirty_ratio=50 - procesy na pozadí začnou nahrávat okamžitě po dosažení 1% limitu, ale systém nebude vynucovat synchronní I/O, dokud nedosáhne dirty_ratio 50%.

Tyto čtyři řádky (při použití se ZRAM) pomohou zlepšit výkon, pokud máte nevyhnutelně Dojde RAM a začíná přechod na swap, jako u mě. S vědomím této skutečnosti a také s ohledem na trojnásobnou kompresi paměti v ZRAM je lepší zahájit tento swap předem.

Vyvíjení tlaku na mezipaměť pomáhá, protože v podstatě říkáme jádru: „Hele, podívej, nemám žádnou paměť navíc, kterou bych mohl použít pro mezipaměť, takže se jí prosím co nejdříve zbavte a ukládejte pouze nejčastěji používané/důležité data."

I při omezeném ukládání do mezipaměti, pokud je časem většina instalované paměti obsazena, jádro začne příležitostně swapovat mnohem dříve, takže CPU (komprese) a swapovací I/O nebudou čekat na poslední chvíli a budou využívat všechny zdroje najednou, když to je příliš pozdě. ZRAM používá ke kompresi trochu CPU, ale na většině systémů s malým množstvím paměti má mnohem menší dopad na výkon než swap bez ZRAM.

Konečně,

Podívejme se znovu na výsledek:

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 téměř jeden gigabajt nekomprimovaných dat. Všechno šlo do ZRAM a nic nešlo do mnohem pomalejšího stránkovacího souboru. Vyzkoušejte tato nastavení sami, fungují na všech modelech Raspberry Pi. Můj nepoužitelný, mrazící systém se změnil ve funkční a stabilní.

Doufám, že v blízké budoucnosti budu pokračovat a aktualizovat tento článek o některé výsledky z testování systému před a po instalaci ZRAM. Teď na to prostě nemám čas. Mezitím si klidně spusťte vlastní testy a dejte mi vědět v komentářích. Raspberry Pi 4 je s těmito nastaveními bestie. Užívat si!

Na téma:

Zdroj: www.habr.com

Přidat komentář