zRam

ZRam est un module du noyau Linux qui permet de compresser la mémoire vive, ce qui peut être utile dans le cas où cette ressource est limitée et arrive souvent à saturation.

En communication étroite avec le processeur, la mémoire vive, ou RAM, permet au processeur de lire et écrire des données très rapidement, afin d'effectuer les opérations les plus courantes et d'assurer la bonne réactivité générale du système.

Plus on ouvre d'applications différentes, ou d'onglets dans un navigateur, plus grande est la quantité de mémoire vive utilisée (et arithmétiquement plus faible est la quantité de mémoire disponible). Lorsqu'elle arrive à saturation l'ordinateur transfère les données qu'il suppose être les moins usitées dans un fichier d'échange sauvegardé sur le stockage non volatile du système, a priori le SSD (ou le disque dur dans le pire des cas).
Cette technique est appelée swap. Plutôt qu'un fichier, il est aussi possible de définir une partition réservée à cet usage (c'était d'ailleurs la seule solution sur les anciennes versions d'Ubuntu).

Malheureusement, même les SSD les plus rapides sont loin de rivaliser avec la mémoire vive en terme de vitesse, et le fait de décharger certaines données présentes en mémoire vive sur ce support permanent beaucoup plus lent ralentit drastiquement le fonctionnement de l'ordinateur. La réactivité générale du système s'en trouve grandement affectée, et dans certains cas celui-ci cesse de fonctionner momentanément ou exige un redémarrage forcé.

zRam permet de repousser cette échéance en compressant la RAM la moins utilisée pour faire de la place. Les données les moins sollicitées dans la RAM sont compressées afin d'offrir davantage de ressources aux nouveaux processus.
Cependant lorsqu'elles sont compressées, l'accès aux informations stockées en RAM se trouve systématiquement ralenti et le processeur est plus sollicité, la compression et décompression des données constituant systématiquement une charge de travail supplémentaire.

zRam est donc utile uniquement dans le cas où la mémoire vive disponible ne suffit pas à l'usage qu'on fait de son ordinateur, et qu'il n'est pas possible d'étendre ses capacités en ajoutant ou remplaçant une barrette de RAM sur la carte mère. Si il n'est pas nécessaire il ne fera que réduire la réactivité du système (en augmentant généralement aussi la consommation électrique et la température du CPU).

Linux conçoit l'espace géré par zRam comme un espace de swap. Mais contrairement au swap ordinaire celui-ci peut lui-même être stocké en RAM, ce qui garantit ses performances (bien que l'espace de RAM disponible traditionnellement s'en trouve réduit d'autant). zRam peut aussi gérer cet espace sur le support de stockage comme le swap traditionnel, cependant son intérêt est dans ce cas très limité étant donné la fiabilité et le prix raisonnable des SSD de nos jours.

zRam est déjà installé sur votre ordinateur, car il est un module du noyau Linux, mais il n'est pas activé par défaut.

Pour l'utiliser le plus simple est d'installer le paquet zram-config qui fournit une configuration par défaut et un service systemd.
Grâce au service zram-config, zRam s'exécute automatiquement une fois le paquet correspondant installé.

Si besoin le paquet zram-tools fournit des services et outils supplémentaires pour le gérer.

Pour vérifier l'activation du service zRam :

systemctl status zram-config

ou encore :

cat /proc/swaps

Exemple d'affichage (pour 4 cores) :

/proc/swaps
Filename				Type		Size	Used	Priority
/dev/sda3                               partition	9215996	0	-1
/dev/zram0                              partition	755740	8104	5
/dev/zram1                              partition	755740	8004	5
/dev/zram2                              partition	755740	8120	5
/dev/zram3                              partition	755740	8064	5
Si la vérification ci-dessus ne donne pas de résultat équivalent, faites
sudo systemctl restart zram-config

Il n'y a rien en principe rien à faire, zRam détecte automatiquement la mémoire vive disponible sur votre ordinateur, ainsi que le nombre de cœurs et la configuration par défaut convient dans la plupart des cas.

Pour modifier la configuration par défaut :

FIXME Cette commande ne peut pas fonctionner, zramswap n'existe plus.
echo "ENABLED=true
ALGO=zstd
PERCENT=50
PRIORITY=100" | sudo tee -a /etc/default/zramswap
sudo systemctl restart zramswap

Ajout

sudo zramctl --find --size 1024M
sudo mkswap /dev/zram1
sudo swapon /dev/zram1

Arrêt

sudo swapoff /dev/zram*
sudo zramctl --reset /dev/zram*
  • zram.txt
  • Dernière modification: Le 07/06/2025, 15:13
  • par krodelabestiole