Utilisation de ZRAM sous Debian avec zram-tools
Qu’est-ce que ZRAM ?
ZRAM est un module du noyau Linux qui permet de créer une zone de swap compressée directement en RAM, au lieu d’utiliser une partition ou un fichier de swap classique sur disque.
Ainsi, au lieu d’écrire les données excédentaires vers un disque (plus lent), le système les compresse en temps réel et les conserve en mémoire vive. Cela permet de réduire significativement les temps d’accès et d’augmenter virtuellement la quantité de mémoire disponible.
ZRAM n’ajoute pas de RAM physique, mais limite efficacement les effets négatifs d’une saturation mémoire, avec un faible impact CPU.
Fonctionnement
ZRAM fonctionne de manière très simple :
- Le noyau crée un périphérique spécial
/dev/zramX
, qui agit comme un disque virtuel. - Toutes les données envoyées vers ce périphérique sont automatiquement compressées.
- Ce périphérique virtuel est ensuite utilisé comme swap à haute priorité.
Algorithmes de compression disponibles
Différents algorithmes peuvent être utilisés :
lz4
,zstd
,lzo
…- Recommandation :
zstd
offre le meilleur équilibre entre performance et taux de compression.
Avantages principaux
Performances comparatives
ZRAM offre des performances très supérieures au swap traditionnel sur disque :
- 10 à 100 fois plus rapide qu’un swap sur SSD SATA classique.
- Jusqu’à 1000 fois plus rapide que le swap sur disque dur mécanique.
- Le débit dépend du taux de compression, mais reste bien supérieur aux performances des supports physiques classiques.
Autres avantages
- Moins d’usure des disques physiques.
- Ne nécessite aucune partition dédiée.
- Meilleure réactivité du système sous forte charge.
- Mise en œuvre rapide et facile.
Installation sous Debian
Installer le paquet nécessaire
sudo apt update sudo apt install zram-tools
Cela installe le service systemd zramswap.service
, chargé de gérer automatiquement les périphériques ZRAM.
Configuration simple dans /etc/default/zramswap
Éditer le fichier de configuration principal :
# /etc/default/zramswap ENABLED=true # Allouer automatiquement 50 % de la RAM totale (ne pas utiliser avec SIZE=) PERCENT=50 # Alternative : fixer directement une taille en Mo (ne pas combiner avec PERCENT) # SIZE=2048 ALGO=zstd PRIORITY=100
⚠️ Attention : choisir soitPERCENT
, soitSIZE
, mais jamais les deux simultanément.
Exemple concret pour une machine disposant de 8 Go de RAM
ENABLED=true PERCENT=50 ALGO=zstd PRIORITY=100
Appliquer la configuration
Pour prendre en compte les modifications :
sudo systemctl restart zramswap.service
Cela recrée proprement les périphériques ZRAM avec les nouveaux paramètres.
Activation au démarrage du système
Pour activer immédiatement et au démarrage suivant :
sudo systemctl enable --now zramswap.service
Vérifications utiles
Afficher les périphériques ZRAM
Lister les périphériques créés :
lsblk
Vérifier l’état du swap ZRAM
Voir le swap actuellement actif :
cat /proc/swaps
Résultat typique :
Filename Type Size Used Priority /dev/zram0 partition 1957468 0 100
Désactivation propre de ZRAM
Pour arrêter et désactiver ZRAM proprement :
sudo systemctl stop zramswap.service sudo systemctl disable zramswap.service