zRAM est un module du noyau Linux présent depuis le noyau 2.6.37.
Il permet de compresser la RAM afin d'éviter de swapper sur le disque.
C'est plus performant de compresser/décompresser dans la RAM la RAM que d'écrire sur un disque mécanique ou SSD.
A partir de Debian 10 pour installer zram il suffit d'installer le paquet `zram-tools`
~~~
# apt install zram-tools
~~~
Le paquet active automatiquement le module kernel zram et installe l'unité systemd `zramswap.service`
Ce service permet d'activer zram au démarrage.
~~~
# swapon -s
Filename Type Size Used Priority
/dev/vda7 partition 488444 0 -2
/dev/vda6 partition 488444 0 -3
/dev/zram0 partition 52428 0 100
/dev/zram1 partition 52428 0 100
/dev/zram2 partition 52428 0 100
/dev/zram3 partition 52428 0 100
/dev/zram4 partition 52428 0 100
~~~
### Configuration
Pour configurer la zram, il faut éditer le fichier `/etc/default/zramswap`, on peut modifier la priorité, le pourcentage de ram qui peut être utilisé par zram (10% par défaut), ou une allocation statique de ram, en MiB, utilisé par zram.
Pour visualiser les algorithmes de compression :
~~~
# cat /sys/block/zram0/comp_algorithm
[lzo] lz4 lz4hc
~~~
On peut définir la compression en zstd, qui est plus performant que lzo, comme ceci :
~~~
# echo zstd > /sys/block/zram0/comp_algorithm
~~~
/!\ Il faut que le paquet zstd soit installé, dispo dans Debian 10
Un outil natif nommé `zramctl` permet de gérer les périphériques de type zram.