diff --git a/HowtoZram.md b/HowtoZram.md index abba8ad6..20073906 100644 --- a/HowtoZram.md +++ b/HowtoZram.md @@ -2,10 +2,87 @@ -À partir de Stretch un outil natif nommé `zramctl` permet de gérer les périphériques de type zram. +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. Exemple pour créer un périphérique (zram0 par défaut), avec une taille de 1G, l'algorithme de compression LZ4 et 4 threads de compression. ~~~ # zramctl -f -a lz4 -s 1G -t 4 +~~~ + +L'outil `zramctl` permet aussi d'avoir des informations de manière détaillée sur la zram comme ceci : + +~~~ +zramctl --output-all +NAME DISKSIZE DATA COMPR ALGORITHM STREAMS ZERO-PAGES TOTAL MEM-LIMIT MEM-USED MIGRATED MOUNTPOINT +/dev/zram4 51.2M 4K 78B lzo 5 0 12K 0B 12K 0B [SWAP] +/dev/zram3 51.2M 4K 78B lzo 5 0 12K 0B 12K 0B [SWAP] +/dev/zram2 51.2M 4K 78B lzo 5 0 12K 0B 12K 0B [SWAP] +/dev/zram1 51.2M 4K 78B lzo 5 0 12K 0B 12K 0B [SWAP] +/dev/zram0 51.2M 4K 78B lzo 5 0 12K 0B 12K 0B [SWAP] +~~~ + +### Désactivation de la zRAM + +Si pour une raison quelconque on souhaite désactiver la zRAM, cela peut se faire comme cela : + +~~~ +# swapoff /dev/zram0 +~~~ + +On réinitialise les paramètres : + +~~~ +# echo 1 >/sys/block/zram0/reset +~~~ + +On désactive le module moyau : + +~~~ +# rmmod zram ~~~ \ No newline at end of file