wiki/HowtoZram.md

86 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.
2020-08-19 16:47:44 +02:00
C'est plus performant de compresser/décompresser dans la RAM que d'écrire sur un disque mécanique ou SSD.
2020-08-19 16:47:44 +02:00
A partir de Debian 10 il suffit d'installer le paquet `zram-tools`
~~~
# apt install zram-tools
~~~
2020-08-19 16:47:44 +02:00
Le paquet active automatiquement le module kernel zram et installe l'unité systemd `zramswap.service` pour qu'il soit activé au démarrage de la machine.
~~~
# 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
2020-08-19 16:47:44 +02:00
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é (10% par défaut), ou une allocation statique de la RAM (notamment en MiB)
2020-08-19 16:47:44 +02:00
Pour visualiser les algorithmes de compressions :
~~~
# 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
~~~
2020-08-19 16:53:09 +02:00
/!\\ Il faut que le paquet zstd soit installé (disponible dans Debian 10) **et** que le noyau linux supporte ce type de compression dans l'API crypto (ce qui n'est pas le cas 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
2020-08-19 16:47:44 +02: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
~~~
2020-08-19 16:47:44 +02:00
L'outil `zramctl` permet aussi de voir des informations de manière détaillée :
~~~
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
2020-08-19 16:47:44 +02:00
Si pour une raison quelconque on souhaite la désactiver :
~~~
# 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
~~~