Ubuntu dříve pro fungující desktop na Raspberry Pi doporučoval minimálně 4 GB RAM. Od verze 22.04 LTS se bude na Raspberry Pi 4 používat zswap, což by mělo pomoci v případě modelu s 2 GB RAM.
Zswap funguje tak, že komprimuje stránky paměti a ty nechává v RAM. Pokud se tam již nevejdou, zapíše je do swapu. Výhodou je, že i ve swapu budou stránky komprimované, takže se bude do swapu méně zapisovat.
Podobné řešení se swapováním do zram používá Armbian, ale prostor pro zram je v RAM alokován staticky (pro zswap dynamicky) a v případě přeplnění již není kam odswapovat (pokud nemáte ještě jeden swap s nižší prioritou).
Pokud chcete zswap vyzkoušet, není třeba čekat na Ubuntu 22.04. Stačí parametr jádra zswap.enabled=1
(na Raspberry Pi v souboru /boot/cmdline.txt
), případně můžete přímo zapsat pomocí echo 1 | sudo tee /sys/module/zswap/parameters/enabled
.
Dále je možné ovlivnit, kolik procent RAM se bude používat pro zswap max_pool_percent
, výchozí hodnota je 20 %, ale jak již bylo řečeno, alokuje se dynamicky jen při potřebě. Jaký kompresní algoritmus se bude používat compressor
, výchozí je lzo a je dobré přepnout na o trochu rychlejší lz4 případně na pomalejší zstd s lepší kompresí. Dále je vhodné změnit alokátor, výchozím je zbud, který umožňuje kompresní poměr jen do 2. Lépe je použít z3fold, který umožňuje poměr až 3. Ve výsledku máme tedy parametry jádra například zswap.enabled=1 zswap.compressor=lz4 zswap.zpool=z3fold
, nebo kód do /etc/rc.local
echo 1 > /sys/module/zswap/parameters/enabled echo lz4 > /sys/module/zswap/parameters/compressor echo z3fold > /sys/module/zswap/parameters/zpool
(zdroj: CNX Software)