serveurs:installation: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.

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.

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.

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.

É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 soit PERCENT, soit SIZE, 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

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.

Pour activer immédiatement et au démarrage suivant :

sudo systemctl enable --now zramswap.service

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

Pour arrêter et désactiver ZRAM proprement :

sudo systemctl stop zramswap.service  
sudo systemctl disable zramswap.service
  • serveurs/installation/zram.txt
  • Dernière modification : 2025/07/03 08:34
  • de aungaro