wiki/HowtoZram.md

88 lines
2.9 KiB
Markdown
Raw Normal View History

2016-12-29 11:25:39 +01:00
# Howto zram
<http://en.wikipedia.org/wiki/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.
2016-12-29 11:25:39 +01:00
2019-03-26 15:00:13 +01:00
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.
2016-12-29 11:25:39 +01:00
~~~
2019-03-26 15:00:13 +01:00
# 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
2019-03-26 15:00:13 +01:00
~~~